[[20041202093153]] 『VBAでVLOOKUP関数を使う』(ぶー) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『VBAでVLOOKUP関数を使う』(ぶー)

またお世話になります。
VBAでVLOOKUP関数を使いたいです。

それで、自分で書いてみたのですが、エラーになります。

このサイトの参考ページも見て考えてみたのですが、

うまく動作しません。

Sub 便利()

    Worksheets("便利").Select

    Range("I2").Value = Application.WorksheetFunction.VLookup(Range("D2"), _
    Worksheets("在庫").Range("A:F"), 6, False)

End Sub

エラーは
「実行時エラー1004

  WorksheetFunctionクラスのVlookupプロパティーを
 取得できません」

と表示されます。

よろしくお願いします。


 コード自体は問題なさそうですが・・・。
普通にVLOOKUP関数をセルへ入力した場合、N/Aエラーにならないか、
確認してみてください。リストのデータと検索値のアンマッチ
(リスト側に不要なスペースが入力されているなど)が原因の
ときが多いです。
(みやほりん)

みやほりんさん、ご指南ありがとうございました。

リストのデータに検索値がないと、エラーになるんですね。

普通に関数をセルに入力すると、#N/Aになるのに・・・
では、再度質問ですが、

リスト側に検索値がなくて、エラー表示させないためには
どうしたらいいですか?
VBAでやってみたいです。
(ぶー)


 検索値がなくてエラーになるのだから、
その前に検索値が存在するかどうか、確認すればよいのです。
Sub 便利()

    Worksheets("便利").Select
    IF WorksheetFunction.Countif(Worksheets("在庫").Range("A:A"),Range("D2")) > 0 Then
    Range("I2").Value = Application.WorksheetFunction.VLookup(Range("D2"), _
    Worksheets("在庫").Range("A:F"), 6, False)
    Else
    MsgBox Range("D2") & "がリストに存在しません。"
    End If
End Sub
(みやほりん)

みやほりんさん、わかりました。

ありがとうございます!
(ぶー)


もう解決済みのようですが、どなたかがこのスレをご覧になるかもしれませんので
参考までに。

事前のエラ−チェックも1つの方法ですが、

 On Error トラップ + WorkSheetFunctionクラスのVLookUp
 ApplicationクラスのVLookUp
 Evaluate
 等々の方法もあります。

以下URL参考まで

http://excelfactory.net/excelboard/excelvba/excel.cgi?mode=all&namber=144927&rev=0


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.