我正在寻找一个VBA脚本,它将循环遍历指定文件夹的所有子文件夹.当我说所有子文件夹时,我指的是指定文件夹中的每个文件夹,以及其中的每个文件夹,以及其中的每个文件夹...理论上可能存在无限的嵌套子文件夹,但实际上它可能不会超过3或4.我使用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.
我需要获取文件夹中所有Excel文件的名称,然后对每个文件进行更改.我已经解决了"改变"部分.有没有办法.xlsx在一个文件夹中获取文件列表,D:\Personal并将其存储在字符串数组中.
然后我需要遍历文件列表并在我认为可以使用的每个文件上运行一个宏:
Filepath = "D:\Personal\"
For Each i in FileArray
Workbooks.Open(Filepath+i)
Next
Run Code Online (Sandbox Code Playgroud)
我一看这个,但是,我没能打开这些文件的原因,而是存储在名称Variant格式.
简而言之,我如何使用VBA获取特定文件夹中的Excel文件名列表?