
vlookup関数をマクロで行いたいと思っており、ネットで調べながらコードを書いております。
違うシート間でうまくいったコードをコピーし、変数等を直して実行してみたところ1004の実行時エラーが出てしまいます。
ソースシートをデータの範囲元とし、シート内にあるI8から始まるデータについて、vlookupをしたいのですが、vlookupプロパティの実行時にエラーが出ます。
範囲指定も検索値についても値が入っており、何が問題かわかりかねており困っております。
ソースシート = "KW_All"
'ソースシートの範囲定義
ソース上 = 8
ソース左 = 5
ソース右 = 5
ソース下 = Sheets(ソースシート).Range(Sheets(ソースシート).Cells(8, 5), Sheets(ソースシート).Cells(8, 5)).End(xlDown).Row
シート = "Keyword"
'keywordシートの範囲定義
上 = 3
左 = 1
右 = 9
下 = Worksheets(シート).Range(Worksheets(シート).Cells(上, 左), Worksheets(シート).Cells(上, 左)).End(xlDown).Row
keyword数 = 下 - 上 + 1
Set 範囲 = Sheets(ソースシート).Range(Sheets(ソースシート).Cells(ソース上, ソース左), Sheets(ソースシート).Cells(ソース下, ソース右))
For i = 1 To keyword数
検索値 = Sheets(シート).Range("I" & 上 + i - 1)
Range("J" & 上 + i - 1) = Application.WorksheetFunction.VLookup(検索値, 範囲, 1, False)
Next
どうぞご教授くださいますと幸いです。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
NO1です。
Application.WorksheetFunction.VLookupの構文では検索値が見つからない場合、
このコードで実行エラーになりマクロは中断しますのでこれを回避する一例です。
wk = Application.VLookup(検索値, 範囲, 1, False)
If IsError(wk) then wk = "Not Found"
Range("J" & 上 + i - 1) = wk
No.2
- 回答日時:
もう一度、KeywordシートI3セル以降の値が、KW_ALLシートのE8以降にちゃんと存在するか確認してみてください。
存在が確認出来てもまだ1004エラーになるのでしたら、その時の検索値とセル範囲「範囲」の値を提示してみてください。
・検索値が存在しない時の処理を入れましょう。
・Vlookupの結果を貼り付けるシートが指定されて居ません。アクティブなシートに張り付くと思いますが良いのでしょうか。
No.1
- 回答日時:
検索値範囲の開始はI8から始まるのではないでしょうか、コード上はI3から開始
されているのでI3が空セル、検索範囲にないデータの為、エラーとなっています。
因みにコードはもっとシンプルにした方がよい、変数などを多用せずシンプルにした
方が良いと思います。
又、変数名称もコメント替わりにするつもりなら意味のある変数名称した方がよいと思います。
一例です。
ソース下 = Sheets(ソースシート).Range(Sheets(ソースシート).Cells(8, 5), Sheets(ソースシート).Cells(8, 5)).End(xlDown).Row
↓
範囲最終行 = Sheets(ソースシート).Range("E8").End(xlDown).Row
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【Excel VBA】Worksheets().Act...
-
実行時エラー'1004': WorkSheet...
-
オートシェイプの文字が更新さ...
-
VBAで指定シート以外の選択
-
excelのマクロで該当処理できな...
-
ユーザーフォームでのリストボ...
-
Excel チェックボックスにチェ...
-
別ブックからシートのコピー
-
Excel VBA シートを追加後に余...
-
Excelマクロのエラーを解決した...
-
EXCELVBAを使ってシートを一定...
-
vba 環境依存文字がListViewボ...
-
【エクセル】オプションボタン...
-
コマンドボタンをクリックでシ...
-
ワークシートを追加したときの...
-
原本シート複写してリストの氏...
-
【EXCEL】ワークシートの名前を...
-
エクセル・マクロ シートの非...
-
【VBA】全ての複数シートから指...
-
実行時エラー1004「Select メソ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【Excel VBA】Worksheets().Act...
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
ユーザーフォームに入力したデ...
-
特定の文字を含むシートだけマ...
-
実行時エラー'1004': WorkSheet...
-
XL:BeforeDoubleClickが動かない
-
エクセルVBA Ifでシート名が合...
-
【ExcelVBA】全シートのセルの...
-
Excel チェックボックスにチェ...
-
ブック名、シート名を他のモジ...
-
Excel VBA リンク先をシート...
-
エクセルで通し番号を入れてチ...
-
実行時エラー1004「Select メソ...
-
シートが保護されている状態で...
-
ExcelのVBAのマクロで他のシー...
-
オートシェイプの文字が更新さ...
-
EXCELVBAを使ってシートを一定...
-
VBAで指定シート以外の選択
-
エクセルのマクロでアクティブ...
おすすめ情報