【发布时间】:2017-01-13 23:20:43
【问题描述】:
我需要在一个工作簿中循环浏览 47 个不同的工作表。
在每个工作表上运行的宏正在为该工作表创建一个新的单独工作簿。我的挑战是,一旦将原始工作簿中的工作表转换为新工作簿,我的宏现在开始循环遍历新工作簿上的工作表而不是原始工作表。我一直在尝试找出某种代码来计算原始工作簿上的每个工作表,然后在创建新工作簿后循环回原始工作簿。
Sub PriceListWest()
'
' PriceListWest Macro
'
Dim Current As Worksheet
Windows("West price list master.xlsm").Activate 'Original workbook'
For Each Current In Worksheets
ActiveSheet.Select 'Selecting worksheet in original workbook'
ActiveSheet.Copy 'Copying worksheet in original workbook'
'Challenge lies here now the loop goes through the new workbook versus returning to original workbook'
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Selection.EntireColumn.Hidden = False
Next
End Sub
【问题讨论】:
-
您在哪里更改工作簿?获取对您的对象的引用并使用 那些 而不是使用全局变量、激活和选择。
-
复制工作簿后,您要在原始工作簿中做什么?
-
将
ActiveSheet.SelectActiveSheet.Copy更改为Current.Copy将解决您的问题,但我添加了一个更好的答案。