2017-04-18 87 views
1

我写了一个简单的宏循环遍历所有表单。但是,它仅适用于第一张纸。我已经阅读了其他有成功的帖子,所以我不确定为什么我的代码无法工作。无法使用Excel宏循环浏览Excel工作表?

Sub Archive_Sheets() 
    For Each ws In ActiveWorkbook.Worksheets 
     Range("B2").Value = "DONE" 
    Next ws 
End Sub 

任何想法可能会导致这种情况?

+1

范围()是指ActiveSheet。如果你想要引用不同的工作表,你需要限定它:ws.Range() –

回答

4

你必须给你写代码喜欢 -

ws.Range("B2").Value = "DONE" 
+0

完美工作。 –

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