[英]Excel VBA Logical operator Not wildcard*
我在Excel运算符上苦苦挣扎,我花了很多时间进行搜索,感觉好像我已经接近了。 else在else语句下执行代码。
If Not CStr(Cells(r, cC)) = "722*" And Not CStr(Cells(r, cS)) = "PI" Then
最简单的方法是使用Left
If Not Left(CStr(Cells(r, cC),3) = "722"
如果要使用通配符,请使用Like
:
If Not Cells(r, cC)) Like "722*" Then
将它们与=
比较会将*
视为一个字符。
Edit2:显然,我对Like的计算工作是错误的。 好像是更快的方法(在这种情况下),尤其是在没有匹配项的情况下(我猜是惰性评估)。 显然,在两种情况下,总的cpu和内存使用量都很小,这取决于您的选择偏好。
这是我发现的: s Like "722*"
比Left(s,3) = "722"
快
s Like "*722"
慢于Right(s,3) = "722"
s Like "*722*"
慢于Instr(1,s,"722")>0
差异的大小取决于字符串的长度,如果有匹配与否(如s Like "722*"
是非常快的,如果s
不启动7
和Left
和Right
不吃亏尽可能Like
如果您将“ 722”替换为更长的内容)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.