Excel VBA代码来replace单元格区域中的string

我正在尝试添加将searchstring#DIV / 0的代码! 在一个单元格范围内(EF:W10),如果find,将用NA代替该单元格。 以下是我所拥有的,但不是很有效。 我错过了什么?

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 

如果你真的需要VBA来做到这一点,那么你可以使用IsError()函数

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

但是,最好是在实际的公式中,而不是事后用VBA来捕捉错误。


注意:以上将捕获所有的错误 – 如果你只是想#DIV/0! 错误,那么你需要testing.Text属性而不是.Value属性:

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

怎么样:

 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