然而,我最初获得子目录的方法失败了.它只显示包括文件在内的一切:
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.
我的循环脚本通过单个文件工作正常,但我现在需要它也查看/为多个目录.我被困了....
事情需要发生的事情:
这就是我所拥有的,这是行不通的,我知道是错的:
MsgBox "Please choose the folder."
Application.DisplayAlerts = False
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = "\\blah\test\"
.AllowMultiSelect = False
If .Show <> -1 Then MsgBox "No folder selected! Exiting script.": Exit Sub
CSRootDir = .SelectedItems(1)
End With
folderPath = Dir(CSRootDir, "\*")
Do While Len(folderPath) > 0
Debug.Print folderPath
fileName = Dir(folderPath & "*.xls")
If folderPath <> "False" Then
Do While fileName <> ""
Application.ScreenUpdating = False
Set wbkCS = Workbooks.Open(folderPath & fileName)
--file loop …Run Code Online (Sandbox Code Playgroud)