VBA Excel:在工作簿中已经添加了具有模板的工作表

快速提问:

我在工作簿中有一个工作表TEMPLATE 。 我想在工作簿中添加一些类似的工作表,使用TEMPLATE作为模板。

如何在VBA Excel中执行此操作?

对于5个额外的TEMPLATES你需要在循环中复制5次:

 Dim i as byte for i=1 to 5 Sheets("TEMPLATE").Copy after:=sheets("TEMPLATE") Next i 

这是一个例子,使13副本:

 Sub qwerty() For i = 1 To 13 Sheets("TEMPLATE").Copy before:=Sheets(1) Next i End Sub 

修改这个以适应你的需求。

只要在这里注册,以防有人像我一样绊倒了这个答案,如果你不想复制整个表格,例如,如果你的“模板”只是另一个表格的范围

 ThisWorkbook.Sheets("Master").Range("A2:L65536").Copy Destination:=ThisWorkbook.Sheets.Add(, Sheets("Data")).Range("A1") 

这里重要的是:

目的地需要一个范围

Sheet.add返回一个工作表对象。

所以不是传递sheetX.range作为Destination参数,而是传递CreateNewSheetFunction.Range

可能不是代码可变性的一个很好的例子,但仍然是一个选项