我有这个问题,我的代码不检查单元格是否具有我需要的值。我用盒子检查它从盒子看起来好看的价值,但是如果没有取值。任何想法都错了吗?我尝试手动为单元格添加值,但是如果不起作用。
and ISNULL(tA.Prop2,-1) = ISNULL(tB.Prop2,-1)
答案 0 :(得分:3)
您需要更改If
语句中的表达方式。
目前,它们都返回True
并且可能不是预期的。
让我们考虑这一行:
If ThisWorkbook.ActiveSheet.Cells(virsus, desinen).value <> "CH" Or _
ThisWorkbook.ActiveSheet.Cells(virsus, desinen).value <> "SSC" Then
您检查此值是否与CH
不同或不同于SSC
。值不能同时等于CH
和SSC
,因此其中一个表达式始终返回True
,因为它们与Or
关键字相关联,所以整个表达式也始终返回True
。
我不确定您要在此If
语句中查看的内容,但我认为如果该值既不是True
也不是CH
,则会返回SSC
。在这种情况下,您只需将运算符Or
替换为And
:
If ThisWorkbook.ActiveSheet.Cells(virsus, desinen).value <> "CH" And _
ThisWorkbook.ActiveSheet.Cells(virsus, desinen).value <> "SSC" Then