我正在尝试获取由复制操作创建的工作表的句柄。以下代码用于工作:
Dim wsTempl As Worksheet, pageCount as Long
Set wsTempl = Sheets("Template")
For pageCount = 1 To 5
wsTempl.Copy After:=Sheets(Sheets.Count)
Set ws = Sheets(Sheets.Count)
ws.Name = "p" & pageCount
Next
但是在将 VeryHidden 工作表添加到工作簿时停止。现在我的 Sheets(Sheets.Count) 正在获取 VeryHidden 工作表,而不是我最后添加的工作表。
我当然可以使用
Set ws = Sheets(wsTempl.Name & " (2)")
ws.Name = "p" & pageCount
但这看起来很丑陋,这真的是唯一的方法吗?有人能想出另一种方法吗?
复制问题:
- 打开一个新工作簿,将第一个工作表命名为“模板”并删除其他工作表
- alt-f11 - 插入代码模块并粘贴上面的代码
- F5 应该告诉你它有效。
- 插入工作表,使用工作表选项卡将其拖到集合的末尾
- 在 VBA IDE 中将其设置为 VeryHidden
- F5 再次,第一个代码列表应该失败
原因似乎是 Copy After:= 不会在 VeryHidden Sheets 之后复制,因此重命名工作表的代码部分总是重命名 VeryHidden Sheet