2017-04-18 86 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