Excel VBA如果不相等则不起作用

时间:2015-07-30 11:15:44

标签: excel vba excel-vba if-statement

我有这个问题,我的代码不检查单元格是否具有我需要的值。我用盒子检查它从盒子看起来好看的价值,但是如果没有取值。任何想法都错了吗?我尝试手动为单元格添加值,但是如果不起作用。

and ISNULL(tA.Prop2,-1) = ISNULL(tB.Prop2,-1) 

1 个答案:

答案 0 :(得分:3)

您需要更改If语句中的表达方式。

目前,它们都返回True并且可能不是预期的。

让我们考虑这一行:

If ThisWorkbook.ActiveSheet.Cells(virsus, desinen).value <> "CH" Or _
                 ThisWorkbook.ActiveSheet.Cells(virsus, desinen).value <> "SSC" Then

您检查此值是否与CH不同或不同于SSC。值不能同时等于CHSSC,因此其中一个表达式始终返回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