• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルVBAでLOOKUP関数がうまくできません)

エクセルVBAでLOOKUP関数がうまくできません

このQ&Aのポイント
  • 入力シートで入力した品名を検索値として判別用シートで数値に置き換えた値をLOOKUPで検索したいが、WorksheetFunctionクラスのVLOOKUPプロパティを取得できず実行時エラーが出る。
  • 修正方法がわからないため、どの部分が原因か教えてほしい。
  • VBA初心者です。ご教示いただければ幸いです。

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

  • ベストアンサー
  • caim
  • ベストアンサー率50% (6/12)
回答No.1

単刀直入に間違っているところは、 >Cells(データ数 ,32) = Application.WorksheetFunction.VLookup(cells(データ数,8),Worksheets("判別シート").Range("B11:E110"),5,False) の行の最後の ("B11:E110"),5, の部分です。 範囲指定はB列~E列なので、合計4列ですが、上記の文だと左から5番目の列が指定されています。 範囲指定を1列分広くする(B11:F110)か、列番号の指定を5から4に変更すると上手く動作すると思います。 ちなみに1件でも返される値がない場合は同じようなエラーがでます。(セルに#REF!と出るのではなく、実行時エラーのことです) ワークシート関数をVBAで使用しているだけなので、数式ではなく値が返されます。数式そのものを入力したい場合は、FormulaプロパティかValueプロパティを使うとよいでしょう。 ※すでにご存知でしたら、余計なお世話ですね、、、。

otk-ks
質問者

お礼

初歩的ミスで質問してしまいましたが最後の回答文参考になりました。 ありがとうございました。

関連するQ&A