2017-09-20 44 views
0

我想打印特定Excel工作表中的所有工作表名稱。如果我這樣做是爲了當前工作簿,這是我的代碼怎麼會:通過其文件路徑遍歷工作簿中的工作表

For Each sht In ActiveWorkbook.Sheets 
     Debug.Print sht.Name 
Next sht 

我想打印一個變量存在的所有的表的名稱,說sFilePath這是一個絕對的文件路徑excel文件。如何打印該Excel文件中所有工作表的名稱?

+0

它正在打印到直接窗口。按下Ctrl + G將其顯示在VBA中。你想在哪裏打印名字? – DaBeau96

+0

你已經在做它。 – jsotola

回答

1

您需要打開該文件你張名前:

Dim sFilePath As String 
sFilePath = Application.GetOpenFilename() 
Workbooks.Open (sFilePath) 

For Each sht In ActiveWorkbook.Sheets 
     Debug.Print sht.Name 
Next sht 

'to close sFilePath workbook 
ActiveWorkbook.Close False 

希望這有助於。

+0

該代碼還打開選定的excel文件。我們如何避免這種情況? – user248884

+0

您需要在獲取表名後關閉它。 –

+0

我剛編輯我的答案。 –

1

打印文件和牀單在一個給定的目錄:

Sub Main() 

    filePath = "C:\Users\jesse\Documents\ExcelTest\"  'folder to search 
    currentFile = Dir(filePath & "*.xls*") 
    Do Until currentFile = "" 

     Debug.Print currentFile 
     Set Workbook = Workbooks.Open(filePath & currentFile, False, True) 

     For Each Sheet In Workbook.Sheets 
      Debug.Print Sheet.Name 
     Next Sheet 

     Workbook.Close SaveChanges:=False 
     currentFile = Dir 
    Loop 

    Set Workbook = Nothing 

End Sub 

希望這會解決你的問題。乾杯!

+0

我希望如果有辦法做到這一點,而無需打開文件(該文件不會彈出在屏幕上)? – user248884

相關問題