将一个工作表的内容复制到一些新创建的工作表

时间:2013-12-27 09:13:31

标签: excel excel-vba vba

我正在处理以下文件:

  • 首先,从给定的列表中创建一些带有列表(帐户)名称的工作表
  • 其次,从目的地“主”表中,所有内容都应复制到每个新表

虽然我成功创建了新工作表列表(感谢这个网站),但我仍然坚持每张工作表的内容。不知道如何用“Master”中的相同内容填写每张新单。工作表“Master”具有某些格式,公式和按钮,因此我需要确保每个新工作表具有完全相同的布局和内容。有任何建议如何将其纳入下面的宏?

Sub CreateSheetsFromAList()

    Application.ScreenUpdating = False
    On Error GoTo ErrorHandler
    Dim MyCell As Range, MyRange As Range
    Set MyRange = Sheets("Cost Center").Range("A2")
    Set MyRange = Range(MyRange, MyRange.End(xlDown))
    For Each MyCell In MyRange
        Sheets.Add After:=Sheets(Sheets.Count) 'creates a new worksheet
        Sheets(Sheets.Count).Name = MyCell.Value ' renames the new worksheet
    Next MyCell
    Sheets("Instruction").Select
    Range("A1").Select

    ErrorHandler:
    Sheets("Instruction").Select
    Range("A1").Select
    Exit Sub
    Application.ScreenUpdating = True

End Sub

2 个答案:

答案 0 :(得分:0)

如果我的评论的答案是肯定的,那么你可以试试这个:

Dim ws, new_ws as WorkSheet 'declare the worksheet

Set ws = Thisworkbook.Sheets("MasterSheet") 'set as mastersheet

For Each MyCell In MyRange
    Set new_ws = ws.copy Before:=Thisworkbook.Sheets(1) 'creates a new worksheet
    new_ws.Name = MyCell.Value 'rename it based on list
Next MyCell

希望这有帮助。

答案 1 :(得分:0)

您的代码非常接近!要复制“主”表的内容,请替换

Sheets.Add After:=Sheets(Sheets.Count)

Sheets("Master").Copy After:=Sheets(Sheets.Count)

相信这有帮助。