我正在处理一个包含一个初始工作表的Excel工作簿。第一张表格是一个表格,询问用户他们的项目中有多少项目。然后,宏为项目中的每个项目生成一个工作表。
每个生成的工作表都有执行特定功能的按钮,这些按钮在工作表代码中都有与之相关的点击事件。
我已经在静态表格中编写了表格中所需的所有功能。
我想知道是否有办法获取此代码,并在表单创建所有格式和按钮后将其导入所有动态创建的工作表。
非常感谢任何帮助!
答案 0 :(得分:1)
你可以创建一个名为" Template" (可能隐藏)包含所有代码和按钮,然后使用这样的东西:
Sheets("Template").Copy After:=Sheets(Sheets.count)
此时,Activesheet将是新复制的工作表,因此您可以定义一个变量来引用它并进行所需的所有更改。例如:
Dim ws as Worksheet
set ws = Activesheet
ws.Range("A1") = "test"
答案 1 :(得分:0)
正如@cyboashu所说,只需复制工作表,它将复制所有公式和格式。此时,仍然可以对单个工作表进行任何其他更改。它们不是链接副本。
这是一个快速而脏的宏,用于将工作表(1)复制到工作簿的末尾并重命名。如果需要进行任何格式化,可以在使用ActiveSheet进行粘贴后立即执行此操作。将新的Activesheet分配给变量以便稍后引用是更好的做法,但我不能100%确定如何在不进一步深入的情况下做到这一点。也许有人可以详细说明。
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