我需要将当前工作簿中的所有工作表名称粘贴到具有相同工作表名称的新工作簿。 (没有数据。我只需要工作表名称。)
我尝试关注VBA,但显示错误
"该名称已被采用。" (运行时错误1004)
'Create new work book for Pivot
Dim Source As Workbook
Dim Pivot As Workbook
Set Source = ActiveWorkbook
Set Pivot = Workbooks.Add
Dim ws As Worksheet
For Each ws In Worksheets
'Create new worksheet in new excel
Dim Line As String
Line = ActiveSheet.Name
Pivot.Activate
Sheets.Add
ActiveSheet.Name = Line
Source.Activate
Next
答案 0 :(得分:1)
您永远不会使用ws
,因此Line
永远不会改变。 you do not need to select or activate anything也是。最后,您应该使用他们来自的工作簿来限定您的Worksheets
等。
Dim Source As Workbook
Dim Pivot As Workbook
Set Source = ActiveWorkbook
Set Pivot = Workbooks.Add
Dim ws As Worksheet
For Each ws In Source.Worksheets
Pivot.Worksheets.Add.Name = ws.Name
Next
这不会保护您免受新工作簿中已有名称与您的某个工作表名称相同的工作表(例如Sheet1
)的情况,并且它将保留新工作簿中的任何工作表默认情况下(由Application.SheetsInNewWorkbook
属性控制)。