VBA复制表到工作簿结尾(带有隐藏的工作表)

end*_*and 23 excel vba excel-vba

我想复制一张纸并将其添加到所有当前纸张的末尾(无论纸张是否被隐藏).

Sheets(1).Copy After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).name = "copied sheet!"
Run Code Online (Sandbox Code Playgroud)

这样可以正常工作,除非有隐藏的工作表,新工作表仅在最后一个可见工作表之后插入,因此该name命令将重命名错误的工作表.

我尝试了以下变体来获取对新复制的引用,WorkSheet但没有一个是成功的和/或有效的代码.

Dim test As Worksheet
Set test = Sheets(1).Copy(After:=Sheets(Sheets.Count))
test.Name = "copied sheet!"
Run Code Online (Sandbox Code Playgroud)

Sid*_*out 35

试试这个

Sub Sample()
    Dim test As Worksheet
    Sheets(1).Copy After:=Sheets(Sheets.Count)
    Set test = ActiveSheet
    test.Name = "copied sheet!"
End Sub
Run Code Online (Sandbox Code Playgroud)

  • 如果隐藏原始工作表并复制该工作表,则还会隐藏新工作表.因此,您的代码无法正常工作. (3认同)

sid*_*c86 8

在复制之前使源工作表可见。然后复制工作表,使副本也保持可见。副本将成为活动工作表。如果需要,请再次隐藏源工作表。