1つだけ過去を変えられるとしたら?

Excel2002VBAで、
「指定セルにエラーの"#N/A"が出ている場合~の処理をする」という場合、
If range("a1")="#N/A" then
としたら、型が一致しません エラー13と出ました。
どのようにすればうまくいくのでしょうか?

A 回答 (5件)

やって見ると,意外に


Sub test03()
If Range("a1").Text = "#N/A" Then
MsgBox "#N/A エラー"
End If
End Sub
で良いようです。
関数なら=ERROR.TYPE(A1)で"#N/A は 7 です。
    • good
    • 5
この回答へのお礼

ありがとうございます。これでもできました。
.Textにすればよかったんですね。

お礼日時:2004/05/23 22:24

ヘルプからの抜粋です。



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
    • good
    • 0

#1です。



ワークシート関数の「ISERROR」を使用すれば良いみたいです。
    • good
    • 0

ちょっと長いですが、


If Application.WorksheetFunction.IsNA(Range("a1")) Then
    • good
    • 0
この回答へのお礼

ありがとうございます。うまくいきました。
単純に文字列を認識するだけでは駄目みたいでした。

お礼日時:2004/05/23 21:57

VBAのHELPで「セルのエラー値」を検索してみてください。

    • good
    • 0

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

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


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