自动重命名多个工作表并将 main 的内容复制到所有新创建的工作表

Auto rename multiple sheets and copy content of main to all newly created sheets

我有一个包含格式化列(B2:Y14 和 A18:B24)的母版 sheet,我正在尝试创建与下个月一样多的 sheet,并且然后将主 sheet 数据复制到每个新创建的 sheet 中。

例如:对于 12 月份,我需要创建 31 个名为 DEC1...DEC31 的 sheet,其中包含来自主 sheet.

的数据

我试过的是:

Sub AddSheets()
    Dim j As Integer
    Dim curSheet As String
    Dim prevSheet As String

    'Dim summarySheet As Workbook

    newName = Application.InputBox("Name", "Rename Sheet", "", Type:=2)
    numSheets = Application.InputBox("Range", "Number of Sheets", "", Type:=1)

    prevSheet = "Main"
    'Set summarySheet = Sheets("Main").UsedRange.Copy


    For j = 1 To numSheets
        Sheets.Add After:=Sheets(CStr(prevSheet))
        curSheet = newName & " " & j
        Sheets(CStr(curSheet)).Name = curSheet
        Sheets("Main").UsedRange.Copy
        Sheets(CStr(curSheet)).Select
        Sheets(CStr(curSheet)).Paste
        prevSheet = curSheet
        'ActiveSheet.Paste
    Next j
End Sub

最简单的方法是在添加时将新 sheet 设置为变量。那你可以参考一下。

Sub AddSheets()
    Dim j As Integer
    Dim prevSheet As String
    Dim newsht As Worksheet
    'Dim summarySheet As Workbook

    newName = Application.InputBox("Name", "Rename Sheet", "", Type:=2)
    numSheets = Application.InputBox("Range", "Number of Sheets", "", Type:=1)

    prevSheet = "Main"
    'Set summarySheet = Sheets("Main").UsedRange.Copy


    For j = 1 To numSheets
        Set newsht = Sheets.Add(After:=Sheets(CStr(prevSheet)))
        newsht.Name = newName & " " & j
        Sheets("Main").UsedRange.Copy newsht.Range("A1")
        prevSheet = newsht.Name

    Next j
End Sub