Sub Macro1()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
Cells.Find(What:="abc", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False).Activate
ActiveCell.Offset(rowOffset:=1, columnOffset:=0).Activate
ActiveCell.Value = "xyz"
Next ws
End Sub
我通過循環遍歷Excel工作簿中的所有工作表來使用以下代碼。我想在工作表中查找「abc」。如果我在特定的工作表上找到「abc」,我希望它下面的單元格的值設置爲「xyz」。 如果在Worksheet1的單元格A2上發現「abc」,我希望單元格A3爲「xyz」。同樣,如果在Worksheet2的單元格B4上找到「abc」,我希望單元格B5爲「xyz」。這必須爲整個工作簿完成。但是,循環遍歷整個工作簿不會發生,代碼只是在工作表1中循環。當Cells.Find執行代碼時,VBA循環工作表失敗
您使用'ActiveCell'可能會導致意外結果的方式存在一些問題,但是我沒有看到會導致循環無法運行的任何問題。你是否收到任何類型的錯誤消息?工作簿中是否有多個工作表? (圖表不包含在「工作表」集合中) – CBRF23
我的工作簿中有多個工作表(不包括圖表)。正如在Answers中user5228244所提到的,在Workbook循環中使用ws.Activate使代碼正常工作。 –