自动重命名多个工作表并将 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
我有一个包含格式化列(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