Excel VBA代码替换单元格区域中的字符串

时间:2017-01-04 15:11:48

标签: excel excel-vba vba

我正在尝试添加搜索字符串#DIV / 0的代码!在一系列单元格(EF:W10)中,如果找到,将用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

2 个答案:

答案 0 :(得分:3)

如果您真的需要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!错误,那么您需要测试.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

答案 1 :(得分: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