Vba 复制粘贴工作表';名称';只有
我需要将当前工作簿中的所有工作表名称复制粘贴到具有相同工作表名称的新工作簿中。(没有数据。我只需要工作表名称。) 我试图遵循VBA,但它显示了错误 “已使用该名称。”(运行时错误1004)Vba 复制粘贴工作表';名称';只有,vba,excel,Vba,Excel,我需要将当前工作簿中的所有工作表名称复制粘贴到具有相同工作表名称的新工作簿中。(没有数据。我只需要工作表名称。) 我试图遵循VBA,但它显示了错误 “已使用该名称。”(运行时错误1004) 您从未使用过ws,因此Line从未更改。也。最后,您应该使用您的工作表的工作簿对其进行限定 Dim Source As Workbook Dim Pivot As Workbook Set Source = ActiveWorkbook Set Pivot = Workbooks.Add Dim ws As
您从未使用过
ws
,因此Line
从未更改。也。最后,您应该使用您的工作表的工作簿对其进行限定
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
),则不会保护您,并且默认情况下,新工作簿将保留所有工作表(由应用程序控制。sheetwWorkbook
属性).您从未使用ws,因此线路从未更改我不明白(我们不能在循环中使用Dim,这样每次它重复时,都会在Dim中放入一个新变量。。对不起,我的语言…我正在尝试从工作簿中的源数据创建一个透视表。到目前为止,我可以使用loop在每个工作表中插入透视。现在我正在尝试仅为透视创建一个单独的工作簿。@shamli You s撕开ActiveSheet.Line
中的Name
是Source
中的活动工作表。您从未在Source
中更改活动工作表,因此Line
也从未更改。@shamli Excel中有一个工作表集合(工作簿中所有工作表的列表)您已经对每个
循环使用进行了迭代。他的意思是您对每个工作表
对象进行了迭代,但从未在循环中的代码中真正使用或引用它,并继续使用活动表
,正如他所解释的,在源
工作簿中从未更改。而且,由于您使用d对于每个循环,您不需要使用Dim
,因为ws
自动引用集合中的下一个工作表对象。谢谢@GSerg非常感谢您帮助我欣赏它。@L42,现在非常清楚了,正如我前面所说,我是VBA新手。:)有很多东西需要学习,我非常感谢你花时间与我分享你的知识。
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