|
こんにちは。かみちゃん です。
>Application.WorksheetFunction.VLookup
>もしくは、
>Application.VLookup
>とします。
>と書いておられたので、前者を念頭においていたのですが、
>エラー対応については後者に限定した話だったのですね。
質問者のnagaoさんが[59661]で提示されたコードに
Dim return_val
とあったものを甘木さんがそのまま流用されているのかと思うのですが、
そういう宣言をするならば、
[59668]で申し上げたとおり
> On Error Resume Next
> はむやみに使わず、なおかつ、できるだけ最小限の範囲で使い
という観点からすると、
On Error Resume Next
等を書かず、
Application.WorksheetFunction.VLookup
ではなく、
Application.VLookup
という記述にしたほうがよいという考えでした。
なお、[59662]の
>Application.WorksheetFunction.VLookup
>もしくは、
>Application.VLookup
>とします。
については、Visual Basicでワークシート関数を使用する方法を書かせていただいただけで、
今、読み返すと、その後の分岐処理
If return_val = "#N/A" Then
もまずいですね。(←もコメントしておげはよかったかもしれません)
>Application.Worksheetfunction.Match と
>Application.Match などの振る舞いの違いと同じ話ですね。
そのとおりです。
私も、別の掲示板で先日、指摘をいただき、勉強させていただいたところです。
>質問者さんにわかるような説明が必要ですね。
私の説明が不十分で、質問者のnagaoさんにわかりづらい説明になってまい、
また、結果的に甘木さんの揚げ足をとるような形になってしまったならば、
私の本意ではありませんので、謝りたいと思います。
>私はどちらかといえばエラー対応の基礎のほうから固めていかれることを
>お勧めしたい気持ちです。
同感です。
私も
> On Error Resume Next
> はむやみに使わず、なおかつ、できるだけ最小限の範囲で使い
については、賛成ですので。
|
|