如果结果不是数字则跳过 - Excel VBA
Skip if Result is Not a Numeric - Excel VBA
最热烈的问候,
目前我有代码:
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
但它仍然给我 "Type Mismatch" 错误...我该如何执行代码
n = n + 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
初步建议:声明所有变量类型。您可以通过在模块顶部添加 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
最热烈的问候, 目前我有代码:
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
但它仍然给我 "Type Mismatch" 错误...我该如何执行代码
n = n + 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
初步建议:声明所有变量类型。您可以通过在模块顶部添加 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