
VLookupを使ったマクロで抽出したいと思っています。下記のマクロコードの設定ついて、Sheet1に検索するデーターがあり、A列~K列に2000件程あります。これのK列を検索してSheet3のA列の番号(Sheet1・Sheet3ともにA列に同じ形式の番号がある)を検索してJ列に結果を出したいのですが、うまくいきません。For i = 1 To SerchKey.Rows.Countの設定がおかしいのか。OutputRange(i, 1) = WorksheetFunction.VLookup(SerchKey(i, 1), SerchRange, 2, False)がエラーになってしまいうまくできません。設定をお教え願えませんか。よろしくお願い致します。
Sub Sample()
Dim SerchKey As Range '検索値
Dim SerchRange As Range '検索範囲
Dim OutputRange As Range '出力範囲
Dim i As Long
Set SerchKey = Worksheets("Sheet3").Range("A2:A2000")
Set SerchRange = Worksheets("Sheet1").Range("A2:J2000")
Set OutputRange = Worksheets("Sheet3").Range("J2:J2000")
Application.ScreenUpdating = False
For i = 1 To SerchKey.Rows.Count
OutputRange(i, 1) = WorksheetFunction.VLookup(SerchKey(i, 1), SerchRange, 2, False)
Next
Application.ScreenUpdating = True
End Sub
No.1ベストアンサー
- 回答日時:
こんにちは
どのようなエラーなのか不明ですが、「VLookupのプロパティを取得できません」というものなら、単純に、関数の結果がエラー値になる場合と同じです。
・検索値が存在しない
・空白値を検索値としている
などが考えられます。
上記の場合であれば、事前にチェックしてエラー回避を行うか、エラー処理を付け加えるかでしょう。
あるいは、結果を表示するセルに関数式を設定して、固定値化する方法を取れば、エラー処理をしなくてもそのままの表示になります。
OutputRange.FormulaLocal = "=Vlookup(A2,Sheet1!A$2:B$2000,2,false)"
OutputRange.Value = OutputRange.Value
のような感じでしょうか。
(ループや変数定義も不要になります)
それ以外が原因の場合は、エラー発生行やエラーの内容などを明記しておいた方が、適切な回答を得られると思います。
なお、ご質問には関係ありませんが、VLookupの第三引数が2なので、検索範囲はA2:B2000でも十分なのではないでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Cellsのかっこの中はどっちが行...
-
Worksheets メソッドは失敗しま...
-
vba 2つの条件が一致したら...
-
マクロ 最終列をコピーして最終...
-
B列の最終行までA列をオート...
-
VBAのFind関数で結合セルを検索...
-
VBA 何かしら文字が入っていたら
-
DataGridViewに空白がある場合...
-
Excelで、あるセルの値に応じて...
-
VBA: 2列のリストボックスの2列...
-
VBAで、離れた複数の列に対して...
-
VBScriptでfindを使うには??
-
VBA 列が空白なら別のマクロへ...
-
期限を超えた日付に警告のメッ...
-
VB2005EE:DataGridViewでチェ...
-
データグリッドビューの一番最...
-
IIF関数の使い方
-
文字列の結合を空白行まで実行
-
VBマクロ 色の付いたセルを...
-
VBAでのリスト不一致抽出について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで、あるセルの値に応じて...
-
Worksheets メソッドは失敗しま...
-
Cellsのかっこの中はどっちが行...
-
vba 2つの条件が一致したら...
-
【VBA】2つのシートの値を比較...
-
B列の最終行までA列をオート...
-
IIF関数の使い方
-
URLのリンク切れをマクロを使っ...
-
VBAを使って検索したセルをコピ...
-
DataGridViewに空白がある場合...
-
VBA 何かしら文字が入っていたら
-
VBAのFind関数で結合セルを検索...
-
複数の列の値を結合して別の列...
-
VBAでのリスト不一致抽出について
-
データグリッドビューの一番最...
-
VBAで指定範囲内の空白セルを左...
-
rowsとcolsの意味
-
【Excel VBA】 B列に特定の文字...
-
VBAで、特定の文字より後を削除...
-
エクセル 2つの表の並べ替え
おすすめ情報