- ベストアンサー
もしセルが"#N/A"なら~をする・・・には?
Excel2002VBAで、 「指定セルにエラーの"#N/A"が出ている場合~の処理をする」という場合、 If range("a1")="#N/A" then としたら、型が一致しません エラー13と出ました。 どのようにすればうまくいくのでしょうか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
やって見ると,意外に Sub test03() If Range("a1").Text = "#N/A" Then MsgBox "#N/A エラー" End If End Sub で良いようです。 関数なら=ERROR.TYPE(A1)で"#N/A は 7 です。
その他の回答 (4)
- papayuka
- ベストアンサー率45% (1388/3066)
ヘルプからの抜粋です。 With ActiveSheet If IsError(.Range("A1").Value) Then errval = .Range("A1").Value Select Case errval Case CVErr(xlErrDiv0) MsgBox "#DIV/0! エラー" Case CVErr(xlErrNA) MsgBox "#N/A エラー" Case CVErr(xlErrName) MsgBox "#NAME? エラー" Case CVErr(xlErrNull) MsgBox "#NULL! エラー" Case CVErr(xlErrNum) MsgBox "#NUM! エラー" Case CVErr(xlErrRef) MsgBox "#REF! エラー" Case CVErr(xlErrValue) MsgBox "#VALUE! エラー" Case Else MsgBox "これはセルのエラーではありません。" End Select End If End With
- edomin
- ベストアンサー率32% (327/1003)
#1です。 ワークシート関数の「ISERROR」を使用すれば良いみたいです。
- gatyan
- ベストアンサー率41% (160/385)
ちょっと長いですが、 If Application.WorksheetFunction.IsNA(Range("a1")) Then
お礼
ありがとうございます。うまくいきました。 単純に文字列を認識するだけでは駄目みたいでした。
- edomin
- ベストアンサー率32% (327/1003)
VBAのHELPで「セルのエラー値」を検索してみてください。
お礼
ありがとうございます。これでもできました。 .Textにすればよかったんですね。