2017-01-04 8 views
0

文字列#DIV/0を検索するコードを追加しようとしています!ある範囲の細胞(EF:W10)に存在し、見つかった場合、その細胞をNAで置換する。以下は私が持っているものですが、それはあまり働いていません。私は何が欠けていますか?あなたが本当にVBAがこれを行う必要がある場合、それは実際の式ではなく、その後よりもVBAを使用してエラーをキャッチするのが最善ですがExcelのセルの範囲の文字列を置き換えるVBAコード

Dim rngDiv As Range 
For Each rngDiv In Range("E4:W10") 
    If InStr(rngDiv.Value, "#DIV/0!") > 0 Then 
     rngDiv.Value = "NA" 
    End If 
Next rngDiv 
+1

スレッジハンマーからキルあなたはそれらの細胞の式を '= IFERROR([現在の数式]、" NA ")'に変更してみてはどうですか? –

+0

は@MacroManに同意します! – serakfalcon

+0

できません。完全なコードはスクリプト内にある必要があり、空の新しいExcelシート上で実行できるようにする必要があります。 – sbagnato

答えて

3

あなたがIsError()機能に

Dim rngDiv As Range 
For Each rngDiv In Range("E4:W10") 
    If IsError(rngDiv) Then 
     rngDiv.Value = "NA" 
    End If 
Next 

を使用することができます。


注:上記すべてエラーキャッチします - あなたはちょうどその#DIV/0!エラーをしたい場合は、代わりに.Value財産の.Textプロパティをテストする必要があります。

Dim rngDiv As Range 
For Each rngDiv In Range("E4:W10") 
    If rngDiv.Text = "#DIV/0!" Then 
     rngDiv.Value = "NA" 
    End If 
Next rngDiv 
+0

はい、これは私が探していたものです。ありがとうございます – sbagnato

0

方法約:

Sub marine() 
    Dim rngDiv As Range 
    For Each rngDiv In Range("E4:W10") 
     If rngDiv.Text = "#DIV/0!" Then 
      rngDiv.Value = "NA" 
     End If 
    Next rngDiv 
End Sub 
+0

奇妙なことに、私は実際にあなたの[古い投稿]にリンクしようとしていました...(http://www.mrexcel.com/forum/excel-questions/703597-xl2003-visual-basic-applications- replaced-div-0-error-string.html#post3474780) –

関連する問題