gpt4 book ai didi

vba - 获取由 Worksheet.Copy 复制的最后一个工作表的句柄

转载 作者:行者123 更新时间:2023-12-02 17:17:51 25 4
gpt4 key购买 nike

我正在尝试获取通过复制操作创建的工作表的句柄。以下代码曾经有效:

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

但这看起来很丑陋,这真的是唯一的方法吗?有人能想到另一种方法吗?

复制问题:

  1. 打开一个新工作簿,将第一个工作表命名为"template"并删除其他工作表
  2. alt-f11 - 插入代码模块并粘贴上面的代码
  3. F5 应该会告诉您它可以工作。
  4. 插入工作表,使用工作表选项卡将其拖至集合末尾
  5. 在 VBA IDE 中将其设置为 VeryHidden
  6. 再次按 F5,第一个代码 list 应该会失败

原因似乎是 Copy After:= 不会在 VeryHidden Sheets 之后复制,因此重命名工作表的代码部分总是重命名 VeryHidden Sheets

最佳答案

工作表的复制方法使新创建的工作表处于事件状态,因此您应该能够执行此操作。


Dim wsTempl As Worksheet, i as int
Set wsTempl = Sheets("Template")
For i = 1 To 5
wsTempl.Copy After:=Sheets(Sheets.Count)
Set ws = ThisWorkbook.ActiveSheet
ws.Name = "p" & pageCount
Next

关于vba - 获取由 Worksheet.Copy 复制的最后一个工作表的句柄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1248822/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com