VBA正则expression式问题
有VBA检查任何良好的机制,如果一个给定的Excel单元格的内容匹配特定的正则expression式?
在我的情况下,我想知道,如果一些单元格的格式
m m2 m1234
事实上,开头只有一个定义的字母,后面跟着一个没有指定数量的字母。
我如何把它放入一个If-Else构造?
If Doc.Cells(1,1).Value ..... ???
问候,poeschlorn
您可以通过工具 – >参考并添加“Microsoft VBScript正则expression式5.5”在VBScript RegExp对象
另外一个快速的方法来做,如果你不需要检查`m1234X1中的后续字母是:
if Doc.Cells(1,1).Value like "[a-zA-Z]#*" then ...
(这不需要参考任何东西)
我不知道VBA,但正则expression式[a-zA-Z][0-9]*
可能能够匹配你想要的。
这是我的RegexContains函数。 将它传递给单元格和模式,如果它包含或不包含,它将返回TRUE或FALSE。
Function RegexContains(ByVal find_in As String, _ ByVal find_what As String, _ Optional IgnoreCase As Boolean = False) As Boolean Application.ScreenUpdating = False Dim RE As Object Set RE = CreateObject("vbscript.regexp") RE.Pattern = find_what RE.IgnoreCase = IgnoreCase RE.Global = True RegexContains = RE.Test(find_in) Application.ScreenUpdating = True End Function
现在,我不确定你想要在你的例子中find什么,但是如果你想知道单元格是否包含单个字母后跟一个或多个字母,那么你会使用(假设单元格为A1):= RegexContains(A1,“^ \ w \ d +”)
- ^标记句子的开始
- \ w标记一个字母字符(a-zA-Z)
- \ d +标记一个或多个数字字符[0-9]
我希望这有帮助。