仅复制粘贴工作表'名称'

问题描述 投票:2回答:1

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

我试过跟随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
vba excel-vba excel
1个回答
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控制)属性)。

© www.soinside.com 2019 - 2024. All rights reserved.