所以我構建了下面的宏,幾乎可以捕捉它需要做什麼。它從一張sheet3複製數據,將數據粘貼到sheet1中。之後,它將使用在sheet2中找到的值替換變量1-7。Excel VBA:如何在For Each語句中使用更改的單元格值?
當宏執行一行時,宏工作正常。不過,我希望它循環遍歷Sheet2中的所有行,並用Sheet2中相應的行值替換變量。
希望在這裏找到答案,因爲我是VBA的新手,還沒有找到答案。
Sub Macro1()
For Each c In Sheets("Sheet2").Range("A2:G13").Rows
Sheets("Sheet3").Activate
Range("A1:AH125").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Sheet1").Activate
lMaxRows = Cells(Rows.Count, "A").End(xlUp).row
Range("A" & lMaxRows + 1).Select
ActiveSheet.Paste
Selection.Replace What:="Variable1", Replacement:=Sheets("Sheet2").Range("A").Value, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="Variable2", Replacement:=Sheets("Sheet2").Range("B").Value, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="Variable3", Replacement:=Sheets("Sheet2").Range("C").Value, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="Variable4", Replacement:=Sheets("Sheet2").Range("D").Value, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="Variable5", Replacement:=Sheets("Sheet2").Range("E").Value, LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="Variable6", Replacement:=Sheets("Sheet2").Range("F").Value, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="Variable7", Replacement:=Sheets("Sheet2").Range("G").Value, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, _
ReplaceFormat:=False
Next
End Sub
要循環,並取代:
要更換
Selection
我已經把解決這個Replace
塊的外With
聲明給下面我相信你想要做什麼的代碼來自sheet2的值?你的意思是sheet3? –是的,替換值可以在sheet2中找到。Sheet3包含由宏的第一部分粘貼到Sheet1中的信息。 –