Excel VBA instr if语句为false

时间:2013-07-11 13:48:47

标签: string excel vba if-statement contains

我正在尝试寻找值2,但是“不应该”显示而不是其他,“确定”。

If Not InStr("1, 2, 3", "2") Then
    MsgBox ("shouldn't happen")
Else
    MsgBox ("ok")
End If

我们知道值在字符串中。但由于某种原因,“不”不起作用。有谁知道为什么?

1 个答案:

答案 0 :(得分:6)

那是因为

?InStr("1, 2, 3", "2")
 4 

?not 4
-5 // bitwise not of 4

这是一个 truthy 值(cbool(-5) = true),所以你需要:

if InStr("1, 2, 3", "2") = 0 then
  // not found
else 
  // found