相关疑难解决方法(0)

获取VBA中的子目录列表

  • 我想获得目录中所有子目录的列表.
  • 如果可行,我想将其扩展为递归函数.

然而,我最初获得子目录的方法失败了.它只显示包括文件在内的一切:

sDir = Dir(sPath, vbDirectory)
Do Until LenB(sDir) = 0
    Debug.Print sDir
    sDir = Dir
Loop
Run Code Online (Sandbox Code Playgroud)

该列表以".."和几个文件夹开头,以".txt"文件结尾.


编辑:
我应该补充说,这必须在Word中运行,而不是Excel(许多功能在Word中不可用),它是Office 2010.


编辑2:

可以使用确定结果的类型

iAtt = GetAttr(sPath & sDir)
If CBool(iAtt And vbDirectory) Then
   ...
End If 
Run Code Online (Sandbox Code Playgroud)

但这给了我新的问题,所以我现在正在使用基于的代码Scripting.FileSystemObject.

recursion vba ms-word ms-office word-vba

20
推荐指数
3
解决办法
4万
查看次数

打开工作簿的最后修改日期

vba新手。需要一个函数来输出打开的工作簿的最后修改日期。这是我到目前为止所拥有的,但是当我调用该函数时,我收到一条消息,指出我的公式包含错误:

Function LastWBModDate(wbname)

    ActivateWB (wbname)
    LastWBModDate = Format(FileDateTime(ActiveWorkbook.FullName), "m/d/yy h:n ampm")

End Function

Public Function ActivateWB(wbname As String)

    If IsWBOpen(wbname) Then
        Workbooks(wbname).Activate
    Else
        MsgBox "Workbook : " & wbname & " is not open " & vbNewLine
    End If

End Function

Public Function IsWBOpen(wbname As String) As Boolean

    On Error Resume Next
    If Workbooks(wbname) Is Nothing Then
        IsWBOpen = False
    Else
        IsWBOpen = True
    End If

End Function
Run Code Online (Sandbox Code Playgroud)

谢谢!

excel vba

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

vba ×2

excel ×1

ms-office ×1

ms-word ×1

recursion ×1

word-vba ×1