VBA在excel中创建交替标签

时间:2016-03-07 15:35:29

标签: excel vba excel-vba macros

我对代码真的很陌生,请原谅这个简单的问题:

我目前有以下代码,可以从列表中创建新选项卡,它可以完美地运行,但我现在有一个'模板2',我希望它为'输入中的每个项创建模板1然后模板2 '标签使用范围F8表示'模板1',G8表示'模板2'。我可以让它在F8中为模板1执行所有项目,然后在G8中为模板2执行所有项目,但我无法将其交替使用。

我最终想要创建模板1然后创建模板2,将值复制并粘贴到新文件中并保存,然后在输入选项卡中重复下一行。

提前谢谢

Sub Addnewsheets()

Dim MyCell As Range, MyRange As Range

Set MyRange = Sheets("Input").Range("F8")
Set MyRange = Range(MyRange, MyRange.End(xlDown))

For Each MyCell In MyRange
Sheets("Template 1").Copy after:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = MyCell.Value 'Renames the new worksheets
Next MyCell
Worksheets("End").Move after:=Worksheets(Worksheets.Count)
End Sub 

1 个答案:

答案 0 :(得分:2)

如果我正确解释您的问题,只需在Next MyCell

之前添加这两行
Sheets("Template 2").Copy after:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = MyCell.Offset(, 1).Value 'Renames the new worksheets based on column G

为清楚起见,For Loop变为:

For Each MyCell In MyRange
    Sheets("Template 1").Copy after:=Sheets(Sheets.Count)
    Sheets(Sheets.Count).Name = MyCell.Value 'Renames the new worksheets
    Sheets("Template 2").Copy after:=Sheets(Sheets.Count)
    Sheets(Sheets.Count).Name = MyCell.Offset(, 1).Value 'Renames the new worksheets based on column G
Next MyCell