我写了一个简单的宏来循环遍历所有工作表。但是,它仅适用于第一张纸。我已经阅读了其他有成功的帖子,所以我不确定为什么我的代码无法正常工作。
Sub Archive_Sheets()
For Each ws In ActiveWorkbook.Worksheets
Range("B2").Value = "DONE"
Next ws
End Sub
任何可能导致此问题的想法?
答案 0 :(得分:4)
你必须写下像 -
这样的代码ws.Range("B2").Value = "DONE"
答案 1 :(得分:1)
您忘记在所述范围的开头使用ws.
。否则,VBA会自动完成Range("B2").Value = "DONE"
到ActiveSheet.Range("B2").Value = "DONE"
。但那不是你想要的(我猜)。所以,这是你应该尝试的:
Sub Archive_Sheets()
For Each ws In ActiveWorkbook.Worksheets
ws.Range("B2").Value = "DONE"
Next ws
End Sub