繁体   English   中英

Excel VBA逻辑运算符非通配符*

[英]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不启动7LeftRight不吃亏尽可能Like如果您将“ 722”替换为更长的内容)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM