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]

我希望这有帮助。