• ベストアンサー

VLOOKUP関数をエクセルVBAで使いたいのですが、

VLOOKUP関数をエクセルVBAで使いたいのですが、 式が間違っているのかどうかは分かりませんが実行できませんでした。 式は以下の通り、書きました。 どこが違うかご指摘願います。 よろしくお願いします。。 'VLOOKUPを行う Sheets("過去履歴").Range("BJ6").Value = Application.WorksheetFunction.Vlookup(Sheets("登録書").Range("A2").Value,Sheets("過去履歴").Range("B6:BG65536"),1,0)

質問者が選んだベストアンサー

  • ベストアンサー
  • shinkami
  • ベストアンサー率43% (179/411)
回答No.2

>Sheets("過去履歴").Range("BJ6").Value = Application.WorksheetFunction.Vlookup(Sheets("登録書").Range("A2").Value,Sheets("過去>>履歴").Range("B6:BG65536"),1,0) 式自体解っていないので見当違いかも sheets(”過去履歴”)が参照テーブルですか「Range("B6:BG65536"),1,0」B列が索引にあたる部分で重複項目が無いですね 参照項目がC列~BG列で32列あるのですね 次のパラメータはB列から数えて何列目ということで 1ではありません。 「Range("B6:BG65536"),1,0」は「Range("B6:C65536"),2,0」 マクロ記録でマクロを作成し、このマクロを編集で開くとコードが表示されます。

mame1218
質問者

お礼

大変わかりやすかったです。 ありがとうございました。

その他の回答 (1)

  • jcctaira
  • ベストアンサー率58% (119/204)
回答No.1

式は問題ないようです。 多分、検索値と検索表でマッチ(見つからない)のではないかと思います。 その場合は、次のようなエラーになります。 実行時エラー "1004" WorksheetFunctionクラスのVlookupプロパティを取得できません。 エラー対応が必要なら「On Error Resume Next」等で対処すべきだと思います。

mame1218
質問者

お礼

ありがとうございました。 参考にさせていただきました。