1
我有一個文件有兩個工作表。我需要運行一個宏,它在sheet2上的A列下方,直到它爲空。它需要查找Sheet1中sheet2列A中單元格的值。如果找到,則更改列AP的值。如果未找到,則跳至下一個值的下一個搜索。Excel的VB宏從另一張表中查找值,然後更改當前表中的單元格值
這是我到目前爲止。我已經能夠解決它,我不再有錯誤,但它也沒有結果。它顯示並似乎正在運行,但沒有對sheet1上的單元格(「AP」,「找到行值」)進行更改。
Sub dataChange()
Dim myRow As Integer
Dim srch As Integer
On Error GoTo Err_Execute
myRow = 1
srch = 1
While Sheet2.Cells(myRow, 1).Value <> ""
If Sheet1.Range("A" & CStr(srch)).Value = Sheet2.Cells(myRow, 1).Value Then
Sheet1.Range("AP" & CStr(srch)).Value = "HOUSTON"
End If
srch = srch + 1
myRow = myRow + 1
Wend
Err_Execute:
MsgBox "An error occurred."
End Sub
行匹配嗎?另外,使用'cells'更容易(對我來說)。 – findwindow
我試過了代碼,它的工作原理。雖然你需要在Err_Execute之前有一個Exit Sub,所以即使一切正常,你也不會收到錯誤信息。而且你應該把變量聲明從'Integer'改爲'Long'。整數只能包含32767的數字。使用它們遍歷1048576行的想法很糟糕。所以,因爲一切正常 - 問題究竟是什麼? – Leviathan
最好提供一個輸入樣本,預期輸出,以及沒有得到的結果。我想猜你需要一個嵌套循環 - srch是外部的,myRow是內部的。 – OldUgly