复制粘贴工作表' name'只要

时间:2017-12-20 06:37:31

标签: vba excel-vba excel

我需要将当前工作簿中的所有工作表名称粘贴到具有相同工作表名称的新工作簿。 (没有数据。我只需要工作表名称。)

我尝试关注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

1 个答案:

答案 0 :(得分:1)

您永远不会使用ws,因此Line永远不会改变。 you do not need to select or activate anything也是enter image description here。最后,您应该使用他们来自的工作簿来限定您的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属性控制)。