Excel VBA如果不等于不起作用
我有这个问题,我的代码不检查单元格是否有我需要的值。 我用框来检查它看起来不错的价值,但如果没有价值。 任何想法什么是错的? 我尝试手动添加值单元格,但如果没有工作。
If ThisWorkbook.ActiveSheet.Cells(virsus, desinen).value <> "CH" Or ThisWorkbook.ActiveSheet.Cells(virsus, desinen).value <> "SSC" Then If ThisWorkbook.ActiveSheet.Cells(virsus, desinen - 1).value <> "CH" Or ThisWorkbook.ActiveSheet.Cells(virsus, desinen - 1).value <> "SSC" Or ThisWorkbook.ActiveSheet.Cells(virsus, desinen - 1).value <> "" Then MsgBox ThisWorkbook.ActiveSheet.Cells(virsus, desinen - 1).value
你需要改变你的If
语句中的expression式。
目前,他们都返回总是True
,这可能不是预期的。
我们来考虑这一行:
If ThisWorkbook.ActiveSheet.Cells(virsus, desinen).value <> "CH" Or _ ThisWorkbook.ActiveSheet.Cells(virsus, desinen).value <> "SSC" Then
您检查此值是否不同于CH
或不同于SSC
。 值不能同时等于CH
和SSC
,因此其中一个expression式总是返回True
并且由于它们与Or
关键字连接,所以整个expression式总是返回True
。
我不确定你想在这个If
语句中检查什么,但是我想如果这个值既不是CH
也不是SSC
那么它会返回True
。 在这种情况下,你只需要用And
代替操作符Or
:
If ThisWorkbook.ActiveSheet.Cells(virsus, desinen).value <> "CH" And _ ThisWorkbook.ActiveSheet.Cells(virsus, desinen).value <> "SSC" Then