我有以下代码,用于检查单元格L是否包含特定字符串,如果不包含,则检查H
If InStr(Cells(count, "L"), "Apples") > 0 Then
'stuff
ElseIf CDbl(Cells(count, "H")) < CDbl(Cells(count, "I")) Then
'stuff
Else
'stuff
End If
我遇到的问题是,如果找不到Apples
并且单元格I#为空,则Type Mismatch
上会出现CDbl(Cells(count, "I"))
。但是,我发现如果我进入并清除此单元格的内容,则一切运行正常。但是我不知道为什么这可以解决此问题,因为据我所知,清除它实际上并没有以任何方式改变单元格或其内容。
在清除之前,我已经确认该单元格完全为空(没有空格,什么也没有),并且在清除之后(文本)的格式与之前相同。现在,我添加了以下内容以在运行上述检查之前清除所有单元格,以防止发生错误。
If Cells(count, "I") = "" Then
Cells(count, "I").Clear
End If
答案 0 :(得分:1)
如果CDbl()
的行为不正确,请考虑使用自己的UDF,例如:
Public Function cdblx(v As Variant) As Double
If IsNumeric(v) Then
cdblx = CDbl(v)
Else
cdblx = 0
End If
End Function