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 。 值不能同时等于CHSSC ,因此其中一个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