ここから本文です

Excel マクロ Vlookupができない理由 現在、「A2からD500」までの情報から 「I...

kaw********さん

2019/4/1413:01:58

Excel マクロ Vlookupができない理由

現在、「A2からD500」までの情報から
「I3」の情報を元に「J3」にその他の情報を入れたいと思っています。

いろいろ調べながらやっているのですが
「"Range"メソッドは失敗しました:"_Global"オブジェクト」
とエラーがでてしまい前に進めません。

下記のコードのどこにミスがあるのでしょうか。

Sub VLookup()
Application.ScreenUpdating = False

Dim i
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row

Range(i, "J") = WorksheetFunction.VLookup(Range(i, "I"), Range("A2:D500"), 2, False)
Next

End Sub


よろしくお願いいたします。

この質問は、活躍中のチエリアン・専門家に回答をリクエストしました。

閲覧数:
77
回答数:
4
お礼:
500枚

違反報告

ベストアンサーに選ばれた回答

fp1********さん

2019/4/1420:13:27

Range(i, "J")ではなく、Range("J" & i) またはCells(i, "J")です。
また、検索値がない場合もあるのであれば、エラー処理のコードを記載しておかないと、エラーになってしまいます。

Sub VLookup()
Application.ScreenUpdating = False

Dim i
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row

On Error GoTo Err
Cells(i, "J") = WorksheetFunction.VLookup(Cells(i, "I"), Range("A2:D500"), 2, False)
Next i
Application.ScreenUpdating = True

Exit Sub
Err:
Cells(i, "J") = ""
Err.Clear
Resume Next

End Sub

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜3件/3件中

並び替え:回答日時の
新しい順
|古い順

tot********さん

2019/4/1911:13:01

>WorksheetFunctionクラスのVLookupを取得できません

I列のどっかに"A2:D500"にないデータが入っていたりしませんか。

ine********さん

2019/4/1413:15:37

Sub VLookup()
Application.ScreenUpdating = False

Dim i

For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row

Cells(i, "J").value = WorksheetFunction.VLookup(Cells(i, "I").value, Range("A2:D500"), 2, False)

Next

Application.ScreenUpdating = True
End Sub

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

hmm********さん

2019/4/1413:09:18

(i, "J")は、Cellsプロパティの書き方です
Cells(i, "J")
Rangeプロパティだと
Range("J" & i)

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる