教えて!gooにおける不適切な投稿への対応について

こんばんわ。

VBAでVLOOKUPを実施していますが値が見つからない場合#N/Aが表示されてしまいます。
これを表示させない良い方法ありますでしょうか?

以下のようにCells(1,i)がブランクになるまで別シート(日別商品別集計)の40列目の値を検索するロジックです。処理はうまくいっていますが値がない場合は” ”にしたいのですが”#N/A”が表示されてしまいます。

Do While Cells(1, j) <> ""

 ActiveCell.Value = Application.VLookup(Cells(1, j), Worksheets("日別商品別集  計").Range("A2:AN533"), 40, False)

*エラーの場合
On Error GoTo ERR_1
ERR_1:
ActiveCell.Value = ""

j = j + 1
ActiveCell.Offset(0, 1).Select
Loop

どなたかご教授いただけませんでしょうか?
よろしくお願い致します。

gooドクター

A 回答 (2件)

一例です。


エラーは文字列判定ではなくIsErrorで行いますので、一旦、別の変数で受ける方が良いと思う。

result = Application.VLookup~
If IsError(result) Then
 エラー処理
    • good
    • 4
この回答へのお礼

mu2011さん、早速のご連絡ありがとうございます!

ご教授いただきました方法でうまく動作しました!!
この度は本当にありがとうございました!

お礼日時:2011/11/30 11:22

この処理では、別にVBAとしてはエラーしません。



ActiveCell.Value は正常に処理され #N/A という値が
入力されただけなので、OnErrorに飛ばないんです。

ですので、

IF ActiveCell.Value = #N/A THEN ActiveCell.Value = ""

みたいな処理が(動作チェックしてませんが)必要です。

この回答への補足

FEX2053さん、早速のご連絡ありがとうございました!

ご教授いただきました通り下記のようにしてみましたが”型が一致しません”というエラーがでてしまいます・・。このActivecellの書式は”標準”になっています。

If ActiveCell.Value = "#N/A" Then
ActiveCell.Value = ""
End If

何がいけないのでしょうか?
度々申し訳ございませんがアドバイスお願いいたします。

補足日時:2011/11/29 22:58
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング