我有一张带有七个矩形的工作表,每个矩形都有一个分配给它的宏,我就像模板一样美化它。 有很多这样的床单,我希望它们都隐藏起来。
现在,我想取消隐藏一张纸,比如sheet1,以完全相同的格式复制包括形状和相应宏在内的所有内容,将其粘贴在纸张3中并再次隐藏纸张1。
我用以下代码尝试了这个,但不知道对象和格式是不是被复制了。
Sub abcd()
Dim ws As Worksheet
Set ws = Sheets("Sheet2")
ws.Visible = xlSheetVisible
ws.Select
Selection.Copy
Dim rs As Worksheet
Set rs = Sheets("Sheet4")
rs.Select
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub
我怎样才能做到这一点?
答案 0 :(得分:0)
您应该复制整张纸,而不仅仅是选择:
'// get the sheet to be copied
Dim ws As Worksheet
Set ws = Sheet1
'// copy it and position before, say sheet5
ws.Copy Before:=Sheet5
'// get a reference to the new sheet
Dim WSNew as worksheet
Set WSNew = Sheets(Sheet5.Index - 1)
'// Give the sheet a new name and make it visible.
WSNew.Name = "New name"
WSNew.Visible = xlSheetVisible
请注意,我使用的是内部工作表编程名称,而不是显示名称 - 由于用户无法更改内部名称,因此更可靠,但您可以在工作表的属性选项卡中更改它。
此外,无需使模板工作表可见,只需复制复制工具。