- ベストアンサー
EXCELの#VALUE!エラーについて
EXCEL2000で、#VALUE!エラーが出ていないセルの計算をしたいのですが、IF文がうまくいきません。 For 行番号 = 2 To 301 If Cells(行番号, 14).Value <> "#VALUE!" Then 処理 ENDIF NEXT このような場合はどうすればよいのでしょうか。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
下記をご参考に 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 の「エラー値か?」を参照
その他の回答 (3)
- ya_kar
- ベストアンサー率46% (6/13)
No3の者です。 VBAではError.type関数は使えないようですね。申し訳ありません! No2の方が書いていたようにCVErrを使います。 ご迷惑をおかけしました。
お礼
VBAで行うことを書いていませんでした。 こちらこそ、ご迷惑をおかけしました。 お世話になりました。
- ya_kar
- ベストアンサー率46% (6/13)
ERROR.TYPE関数を使ってみてはいかがでしょうか? (エラーのタイプを判定する関数です) If Error.type(Cells(行番号,14) <> 3 Then
お礼
回答していただき、ありがとうございます。 For J = 2 To 301 If Error.Type(行番号, 14) <> 3 Then 処理 End If Next 実行時エラー'424'オブジェクトが必要です という、メッセージが出ます これは、何か足りないのでしょうか
- haruka1234567890
- ベストアンサー率18% (120/666)
<> "#VALUE!" でじゃなく、エラーかどうかで判定するしかないかも。 でも、その場合 N/A も対象になっちゃうからだめなのかな
お礼
回答していただき、ありがとうございました。
お礼
回答していただき、ありがとうございました。 回答のそのまま使えました。 助かりました。