2つのワークシートを持つファイルがあります。空になるまで、シートAの列Aを見下ろすマクロを実行する必要があります。シート1のシート2の列Aのセルから値を探す必要があります。見つかった場合は、列APの値を変更します。見つからなければ、次の値の次の検索にスキップします。Excel VBマクロで別のシートの値を検索し、現在のシートのセル値を変更します
これはこれまで私が行ってきたことです。私はもはやエラーが発生しない場所に修正することができましたが、結果もありません。実行されているように見えますが、シート1のセル(「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