我有一个名为AT5321.xlsx
的文件(这个名字将继续改变)从我想要调用宏的地方:
C:\Atul\Data
AT5321
)。文件夹的实际名称如下:F-003-106-AT5321.M
report.xls
的文件,必须打开它。你必须得到,我是一个新手。我希望减轻我日常的Excel任务。
任何轻微的帮助对我都很有价值。
在Cor_Blimey的帖子的帮助..(Loop Through All Subfolders Using VBA)
这将循环遍历子文件夹中的所有子文件夹和子文件夹(理论上无限期)。
Public Sub NonRecursiveMethod()
Dim fso, oFolder, oSubfolder, oFile, queue As Collection
Dim FoundFolder as Boolean
Set fso = CreateObject("Scripting.FileSystemObject")
Set queue = New Collection
queue.Add fso.GetFolder("C:\Atul\Data")
Do While queue.Count > 0
Set oFolder = queue(1)
queue.Remove 1 'dequeue
For Each oSubfolder In oFolder.SubFolders
queue.Add oSubfolder
If oSubfolder Like "*" & ThisWorkbook.Name & "*" Then 'Replace workbook name if necessary
Workbooks.Open Filename:=oSubfolder & "\report.xls"
FoundFolder = True
Exit For
End If
Next oSubfolder
Loop
If FoundFolder = False Then MsgBox "Error: Folder '" & ThisWorkbook.Name & "' could not be found", vbExclamation, "Error"
End Sub
或者,您可以从主文件夹中查看子文件夹
Sub SubFoldersinMainFolder()
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder("C:\Atul\Data")
Set subfolders = folder.subfolders
For Each subfolders In subfolders
If subfolders Like "*" & ThisWorkbook.Name & "*" Then 'Replace workbook name if necessary
Workbooks.Open Filename:= subfolders & "\report.xls"
FoundFolder = True
Exit For
End If
Next subfolders
If FoundFolder = False Then MsgBox "Error: Folder '" & ThisWorkbook.Name & "' could not be found", vbExclamation, "Error"
End Sub
我必须补充说,“文件夹”这个词现在看起来很奇怪