列出存储在各种文件夹和子文件夹中的工作簿中的所有工作表 – Excel,VBA
我一直在试图编写一个macros,将列出我的目录中的每个工作簿的工作表名称。 这些文件存储在不同的文件夹和子文件夹中,所以我希望它能把所有的东西都拿出来,我可以从整个输出中推断出我需要的信息。 这个代码是我在这个网站的用户的帮助下放在一起的,但是我仍然没有得到想要的结果。 有人请帮忙!
Sub machinegun() FileType = "*.xls*" OutputRow = 2 Set fso = CreateObject("Scripting.FileSystemObject") Set Folder = fso.GetFolder("G:") Set Curr_File = (filepath & FileType) For Each Subfolder In Folder.Subfolders Do Until Curr_File = "" Set Fldr.wkbk = Workbooks.Open(filepath & Curr_File, False, True) ThisWorkbook.ActiveSheet.Range("A" & OutputRow) = Curr_File ThisWorkbook.ActiveSheet.Range("B" & OutputRow).ClearContents OutputRow = OutputRow + 1 For Each Sht In FldrWkbk.Sheets ThisWorkbook.ActiveSheet.Range("B" & OutputRow) = Sht.Name ThisWorkbook.ActiveSheet.Range("A" & OutputRow).ClearContents OutputRow = OutputRow + 1 Next Sht FldrWkbk.Close SaveChanges:=False Loop Next End Sub
这里是从循环所有子文件夹使用VBA ,这将为你工作:
Option Explicit Sub LoopThroughFiles() Dim FileSystem As Object Dim HostFolder As String HostFolder = "C:\Users\" Set FileSystem = CreateObject("Scripting.FileSystemObject") DoFolder FileSystem.GetFolder(HostFolder) End Sub Sub DoFolder(Folder) Dim SubFolder For Each SubFolder In Folder.SubFolders DoFolder SubFolder Next Dim File For Each File In Folder.Files Debug.Print File.name Next End Sub
只要确保您运行LoopThroughFiles()
并将HostFolder
更改为有意义的东西。 然后在debug.print
使用File.name
。