string - Excel VBA 指令 if 语句 false

标签 string excel vba if-statement contains

我试图寻找值2,但是显示的是“不应该发生”而不是其他“确定”。

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

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

最佳答案

那是因为

?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

关于string - Excel VBA 指令 if 语句 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17595164/

相关文章:

c++ - 在文本流中用另一个字符串替换所有出现的字符串

r - 如何计算有多少子字符串与列表中的至少一个元素匹配,前提是它们前面或后面没有否定?

java - 如何使用 shiftColumns 方法删除列

excel - 为什么 Excel 数据透视表中的总计为 #DIV/0! (除以零)在此计算字段上?

未登录时 Excel 不会启动

excel - 如何将一行复制到多行?

vba - 从 Outlook 中的特定文件夹下载附件

c++ - 算法和算法性能的缺陷

python - 字符串转MD5

vba - Excel VBA 中出现错误 70 的原因是什么?