【问题标题】:Skip if Result is Not a Numeric - Excel VBA如果结果不是数字则跳过 - Excel VBA
【发布时间】:2026-01-19 22:55:02
【问题描述】:

最温暖的问候, 目前我有代码:

result = Range("E" & n) - Range("D" & n)

会有一行文本给出的结果不是数字,我尝试添加这些代码:

result = Range("E" & n) - Range("D" & n)
Lvalue = IsNumeric(result)
If Lvalue = False then
    n = n + 1
else
    'other code here
End If

但它仍然给我“类型不匹配”错误...我该如何执行代码

n = n + 1

当结果不是数字时?任何努力都值得赞赏!谢谢!

【问题讨论】:

    标签: vba excel skip


    【解决方案1】:

    如果你减去两个不是数字的数字,你可能会得到错误。

    所以试着找出这两个单元格是不是数字,然后做你的事情。

    If IsNumeric(Range("E" & n)) = True And IsNumeric(Range("D" & n)) = True Then
        result = Range("E" & n) - Range("D" & n)
        n = n + 1
    Else
        'other code here
    End If
    

    【讨论】:

    • If IsNumeric(Range("E" & n)) And IsNumeric(Range("D" & n)) Then 也可以。
    【解决方案2】:

    初步建议:声明所有变量类型。您可以通过在模块顶部添加 Option Explicit 来强制执行此操作。

    Option Explicit
    
    Dim result As Variant
    Dim n As Long
    
    n = 1 ' Or whatever value you need to start at
    
    result = Range("E" & n) - Range("D" & n)
    If IsNumeric(result) then
        n = n + 1
    else
        'other code here
    End If
    

    【讨论】:

    • 感谢您的努力!
    最近更新 更多