• ベストアンサー

EXCELの#VALUE!エラーについて

 EXCEL2000で、#VALUE!エラーが出ていないセルの計算をしたいのですが、IF文がうまくいきません。 For 行番号 = 2 To 301 If Cells(行番号, 14).Value <> "#VALUE!" Then 処理 ENDIF NEXT このような場合はどうすればよいのでしょうか。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

下記をご参考に Sub test01() For i = 1 To 10 If IsError(Cells(i, 1)) Then errval = Cells(i, 1).Value If errval = CVErr(xlErrValue) Then MsgBox i & "行目" & "#VALUE! エラー" Else ' 処理 End If End If Next i End Sub (データ例)A1:A10 #DIV/0! #N/A #VALUE! (実行結果)8行目#VALUE!エラーと表示 (参考)http://www.asahi-net.or.jp/~zn3y-ngi/YNxv205.html#2 の「エラー値か?」を参照

QAZ123
質問者

お礼

回答していただき、ありがとうございました。 回答のそのまま使えました。 助かりました。

その他の回答 (3)

  • ya_kar
  • ベストアンサー率46% (6/13)
回答No.4

No3の者です。 VBAではError.type関数は使えないようですね。申し訳ありません! No2の方が書いていたようにCVErrを使います。 ご迷惑をおかけしました。

QAZ123
質問者

お礼

VBAで行うことを書いていませんでした。 こちらこそ、ご迷惑をおかけしました。 お世話になりました。

  • ya_kar
  • ベストアンサー率46% (6/13)
回答No.3

ERROR.TYPE関数を使ってみてはいかがでしょうか? (エラーのタイプを判定する関数です) If Error.type(Cells(行番号,14) <> 3 Then

QAZ123
質問者

お礼

回答していただき、ありがとうございます。 For J = 2 To 301 If Error.Type(行番号, 14) <> 3 Then 処理 End If Next 実行時エラー'424'オブジェクトが必要です という、メッセージが出ます これは、何か足りないのでしょうか

回答No.1

<> "#VALUE!" でじゃなく、エラーかどうかで判定するしかないかも。 でも、その場合 N/A も対象になっちゃうからだめなのかな

QAZ123
質問者

お礼

回答していただき、ありがとうございました。