Sub copysheet()
Dim Mainws As Worksheet
Dim Mainwb As Workbook
Set Mainwb = ThisWorkbook
Set Mainws = ThisWorkbook.Worksheets(1)
i = Mainwb.Worksheets.Count
With Mainwb
Mainws.Copy after:=Worksheets(i)
Worksheets(i + 1).Name = "Copied Worksheet"
End With
With ActiveSheet
Cells(1, 1).Value = "Copied Sheet"
'other formatting changes
End With
'increment i variable if you plan to make more copies in a loop
'i = Mainwb.Worksheets.Count
End Sub
2 回答
您可以创建一个名为“Template”(可能隐藏)的工作表,其中包含所有代码和按钮,然后使用以下内容:
此时,Activesheet将是新复制的工作表,因此您可以定义一个变量来引用它并进行所需的所有更改 . 例如:
正如@cyboashu所说,只需复制工作表,它将复制所有公式和格式 . 此时,仍然可以对单个工作表进行任何其他更改 . 它们不是链接副本 .
这是一个快速而脏的宏,用于将工作表(1)复制到工作簿的末尾并重命名 . 如果需要进行任何格式化,可以在使用ActiveSheet进行粘贴后立即执行此操作 . 将新的Activesheet分配给变量以便稍后引用是更好的做法,但我不能100%确定如何在不进一步深入的情况下做到这一点 . 也许有人可以详细说明 .