【发布时间】:2014-12-23 05:04:52
【问题描述】:
我正在尝试遍历工作簿中的每个工作表,但它不起作用。我认为这是 ActiveWorkbook.Worksheets 无法识别每个工作表并且仅在活动工作表上运行。任何建议都会很棒!我确定这是一个基本修复,但似乎无法弄清楚。谢谢!
Sub LoopThroughWorksheets()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
If (ws.Name <> "Sheet1") And (ws.Name <> "Sheet2") And (ws.Name <> "Sheet8") And (ws.Name <> "Sheet42") Then
With ws
'code
'Sheets("Formula").Select
Range("FormulaRow").Copy
'Selection.Copy
ActiveSheet.Select
ActiveSheet.Range("A1").Select
ActiveSheet.Paste
Calculate
Range("Q1:X1").Select
Selection.Copy
Range("Q3:X3000").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Calculate
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End With
End If
Next ws
End Sub
【问题讨论】:
-
“我认为是 ActiveWorkbook.Worksheets 无法识别每个工作表”:最好有一个可以解释问题的理论。为什么不在循环中添加一些代码来显示 ActiveSheet 在每次迭代中是否实际发生了变化?
-
我可以看到它在每次迭代中都没有改变,这就是我这么想的原因。谢谢。