我收到一个错误我无法解释我有一个Excel列表我要加载到内存中,看看下一行是否仍然是一个相对行我检查单元格是否有值{{{ 1}}但值为If value = "" Then
,它给了我一个未处理的异常......
我不太明白为什么代码会出错,单元格值的格式就像所有先前检查过的单元格一样。但是这里会抛出一个错误。
也许我只是没有看到它,有人可以解释一下?
答案 0 :(得分:1)
您应该每次都检查一下这个值。
Dim o As Object = oSheet.Range(xxx).Value
If (o IsNot Nothing) Then
Select Case o.GetType
Case GetType(Double)
' do work here
Case GetType(Integer)
' do work here
...
End Select
Else
...
End If
答案 1 :(得分:0)
我的图片没有显示给我。
excel中的大多数例外都与数据类型相关。最有可能的是,你要么是一个NULL,要么是一个看起来像人眼的整数的字符串。您可以根据需要盲目地尝试使用trim(),int()或str()等,以确保您实际测试整数或匹配字符串,如果这就是您的意思,或者您可以在编程方法中测试它们。 / p>
首先,需要测试的编程方法... isEmpty或isNull以确保细胞良好...
if isEmpty(value) Then
<do something>
这很可能会捕获导致消息的错误。如果为空则失败,请尝试使用isNull进行测试。一个意味着单元格是空的,另一个意味着它没有初始化(很少在excel中出现问题,但如果使用vba代码则可能发生)。
另外......你的if语句设置在一个不太理想的...使用&lt;&gt;代替if then else ...
您的代码......
If value = "" Then
通用公式当你想测试某些东西不是别的东西时,使用not equals ...
if value <> "value" Then
"some operation"