2015-06-24 64 views
0

我想打印特定文件夹下所有excel文件的列表。除文件名外,我还应该能够打印excel文件下所有表格的名称。Excel VBA列出特定文件中的所有工作表

下面是我打印文件名的代码示例如下。但是,我无法弄清楚如何阅读该文件下的图纸名称列表?

Sub ButtonRun_Excel_Compare_Report_Click() 
    Sheet1.Cells.Clear 
    ShowFolderList ("D:\temp") 
End Sub 

Sub ShowFolderList(folderspec) 
    Dim fs, f, f1, fc, s, sFldr 
    Set fs = CreateObject("Scripting.FileSystemObject") 
    Set f = fs.GetFolder(folderspec) 
    Set fc = f.SubFolders 
    For Each f1 In fc 
     If Right(f1, 1) <> "\" Then ShowFolderList f1 & "\" Else ShowFolderList f1 
    Next 
    Set fc = f.Files 
    Rowcnt = 1 
    For Each f1 In fc 

     If f1.Name Like "*.xls" Then 

      'How to loop through the Sheets under exach file? 

      Sheet1.Cells(Rowcnt, 1) = f1.Name 
      'Sheet1.Cells(Rowcnt, 2) = f1.Path 
      Rowcnt = Rowcnt + 1 
      'Debug.Print folderspec & f1.Name 
     End If 
    Next 
End Sub 

感谢帮助。由于

+0

如果需要满足所有片材类型(包括图表工作表),你必须通过打开工作簿和循环床单。 – Rory

+0

使用[this](http://stackoverflow.com/questions/14358443/vba-list-of-sheets-hyperlinked)或[this](http://stackoverflow.com/questions/10654797/how-can- i-use-vba-list-all-worksheets-in-a-workbook-in-a-string)回答并将其包装在“Workbook.Open”和“.Close”命令中。 – nhee

+0

如果您不想打开每个Excel工作簿以获取工作表名称,则可以使用ADO并查询已关闭的工作簿。例如[这里](http://www.mrexcel.com/forum/excel-questions/47074-get-worksheet-names-closed-workbook.html)。 – dee

回答

2

你必须打开通过片状物体的工作簿和循环

Application.Workbooks.Open Filename:=folderspec & f1.Name 
For i = 1 to ActiveWorkbook.Sheets.Count 
    strFlenme = ActiveWorkbook.FullName 
    strShtNme = ActiveWorkbook.Sheets(i).Name 
    Debug.print strFlenme & " - " & i & " '" & strShtNme & "'" 
Next 
相关问题