• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCEL VBA VLOOKUP 範囲を変数で)

Excel VBA VLOOKUP 範囲を変数で指定する方法とは?

このQ&Aのポイント
  • Excel VBAでVLOOKUP()の第2引数の範囲を行と列の数値の変数で指定する方法を教えてください。
  • 以下の式がエラーにならないように具体的に直してください。
  • 愛知という値に対して、Worksheet「Sheet1」の範囲を行2から782、列3から5までとし、4列目の値を検索したいです。

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

  • ベストアンサー
  • ushi2015
  • ベストアンサー率51% (241/468)
回答No.1

こんにちは   With Worksheets("Sheet1")     .Range(.Cells(r1, c1), .Cells(r2, c2)).Select     d2 = WorksheetFunction.VLookup( _       d1, .Range(.Cells(r1, c1), .Cells(r2, c2)), c3, False)   End With で、更に、 検索対象範囲が3列しかないのに、c3 = 4となっているのはダメなので、 D列の値を知りたいのなら、c3 = 2 E列の値を知りたいのなら、c3 = 3 にして下さい。

yam2012
質問者

お礼

上記のコードで正しく動作するようになりました。 ・VLookupの前にWorksheetFunctionが必要 ・Cells()にもWorksheets("Sheet1")が必要 ・c3の値 の3つの問題の箇所がありましたが、 親切に教えていただきまして解決することができました。 ありがとうございました。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

質問に下記を補足したら。 VBAでもVLOOKUP関数は使える。その時はApplication.WorkSheetFunction.VLOOKUP (・・)になることぐらい調べたのだろうね。 範囲指定の、c1、C2、さらにC3はどうして決まるのか質問に書かないで質問しても答えようがない。第3引数C3まで変わるの? それと範囲はこのモジュール実行中は変わらないのだろうね。 各行処理ごとに何かの要素で変わるなどのケースなら説明が必要だ。 == 動きもしない、コードなどは書かなくてよい。 簡単な実例を挙げて、どういう要素を見て、どういう結果になってほしいいかかくのが当たり前だろう。 ーー 実行中は一定の範囲なら Rangeの範囲指定にApplication.InputBoxのType 8nなんてしていもあるがご存じか。

  • ushi2015
  • ベストアンサー率51% (241/468)
回答No.2

済みません。 確認用の余計なコード .Range(.Cells(r1, c1), .Cells(r2, c2)).Select 消し忘れました。 削除して下さい。

関連するQ&A