【问题标题】:VBA IF statement works when condition is met but get mismatch error when condition not met.VBA IF 语句在满足条件时工作,但在不满足条件时出现不匹配错误。
【发布时间】:2018-03-22 05:52:54
【问题描述】:

VBA 初学者在这里...这可能是我忽略的一个简单解决方案,但我找不到其他问题来解决我的问题。 如果单元格 B1 不是#N/A,我将使用下面的代码删除第一行...否则什么也不做。

If [B1].Value <> "#N/A" Then
[B1].EntireRow.Delete
End If

如果满足条件,则删除第一行,代码完美运行。但是,如果不满足条件,我会收到不匹配错误(而不是只移动到下一行)。有任何想法吗?谢谢。

【问题讨论】:

    标签: vba if-statement


    【解决方案1】:

    错误#N/A 不是字符串,因此.Value 实际上并不等于文本#N/A;它是一个 Error 值(Error 是一种数据类型),并且不能将 Error 强制转换为 String。

    您使用以下方法测试错误:

    If not IsError(ActiveSheet.Range("B1").Value) Then
    

    或测试.Text

    If ActiveSheet.Range("B1").Text <> "#N/A" Then
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-17
      • 1970-01-01
      相关资源
      最近更新 更多