繁体   English   中英

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

[英]How to list all sheets in opened Workbook in Workbook_Open event handler Sub?

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

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

这是一个例子:

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

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

我认为您只是缺少一些参考。

我刚刚测试了一下,并且工作得很好:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM