VBA中"like"运算符中的空格字符

Eua*_*hie 3 vba

我试图使用like函数来区分开始的单元格(除了空白字符)与2或3数字后跟更多的空格字符,但似乎无法识别后者.例如,对于两个单元格,一个包含

一些文字

和另一个包含

111一些文字

我一直试图写一个if语句,对于第一个而不是第二个是真的.我试过了

if cells(i,1) like "*##[ ]*" then
Run Code Online (Sandbox Code Playgroud)

if cells(i,1) like "*##\s*" then
Run Code Online (Sandbox Code Playgroud)

if cells(i,1) like "*##[^#]*" then
Run Code Online (Sandbox Code Playgroud)

以下有关使用各种来源的正则表达式的信息(前两个我试图识别2个数字后跟一个空白字符,第三个2个数字后跟一个非数字).

它是for循环的一部分,并且如上例所示,唯一的数字位于字符串的开头,而不是有时是空格字符.在第一个代码示例中,if语句对于2和3数字都是真的,对于第二个和第三个数字,对于两个都不是.鉴于我所读到的有关正则表达式等函数的内容,我不明白这一点.

我非常感谢指导.我希望这个相对简单,所以我确定我遗漏了一些明显的东西,如果是这样的话,我会道歉.

des*_*ata 7

VBA的运营商不支持RegEx.相反,它有自己的格式.使用文字值匹配空格,不需要转义.

Input               Op      Pattern     Result
"11 Some Text"      LIKE    "## *"      True
"11Some Text"       LIKE    "## *"      False  
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅Microsoft的文档.

如果您更愿意使用RegEx,请查看此答案.@PortlandRunner已经花时间制作了一本很棒的指南,其中包括很多例子.