如何在Workbook_Open事件处理程序Sub中列出已打开的工作簿中的所有工作表?

时间:2017-03-07 08:36:57

标签: excel vba excel-vba

当用户打开已保存的工作簿时,我想从隐藏的工作表中加载数据。

我以为我会使用Workbook_Open Sub并从该Sub加载该工作表中的数据,但是后来调用了这个Sub,我还没有任何工作簿。

以下是一个例子:

Private Sub Workbook_Open()
   Debug.Print "Open: " & Workbooks.Count 'prints 0 to console
End Sub

我也试过这种方法:

Private Sub Workbook_Open()
   Dim sh As Worksheet
   For Each sh In Sheets
      Debug.Print sh.name
      'prints only Sheet1, Sheet2, Sheet3 and do not print the name of my data sheet.
   Next sh
End Sub

所以我的问题是:当用户打开工作簿时,如何按名称获取工作表?

1 个答案:

答案 0 :(得分:0)

我认为你只是缺少一些参考文献。

我刚试过这个并且工作得很好:

Private Sub Workbook_Open()
   Debug.Print "Opened wB: " & Application.Workbooks.Count

   Dim wS As Worksheet

   Debug.Print "Sheets: "
   For Each wS In ThisWorkbook.Sheets
      Debug.Print wS.Name
   Next wS
End Sub