如何替换以下脚本来搜索值而不是字符串?

如何替换以下脚本来搜索值而不是字符串?

我有以下宏,它迭代指定列中的每个单元格。如果单元格包含字符串的值#VALUE!,则将其替换为其上方和下方 2 个单元格(包含整数)的平均值。

Sub Checker()
Dim Qty As Range

For Each Qty In Range("A1:A5").Cells

    If InStr(1, (Qty.Text), "#VALUE!") Then
    Qty.FormulaR1C1 = "=AVERAGE(R[-2]C:R[-1]C,R[1]C:R[2]C)"

    End If
Next
End Sub

所以:

  A                  A
1  10              1  10
2  10              2  10
3  #VALUE!   ->    3  10
4  10              4  10
5  10              5  10

现在我想要宏来搜索0而不是#VALUE!

  A                  A
1  10              1  10
2  10              2  10
3   0        ->    3  10
4  10              4  10
5  10              5  10

我需要在代码中替换什么?

简单地替换"#VALUE!""0"不起作用。我猜是使用另一个函数代替,InStr但我对 VBA 不太熟悉。

答案1

If InStr(1, (Qty.Text), "0") Then

将检查字符串中是否有“0”,这可能不是您想要的。尝试

If Qty.Text = "0" Then

或者

If StrComp(Qty.Text, "0") = 0 Then

检查完整字符串是否为“0”。

对于“#VALUE!”检查来说,比较完整的字符串也是一个更好的解决方案。

相关内容