1.新建一个空白工作簿,在工作表界面按下组合快捷键Alt+F11或者右键单击任意一个工作表标签,在弹" />
乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > <em>excel</em>如何匹配<em>正则</em>表达式并标色

<em>excel</em>如何匹配<em>正则</em>表达式并标色

作者:乔山办公网日期:

返回目录:excel表格制作


^\w*\.xls$

1.新建一个空白工作簿,在工作表界面按下组合快捷键Alt+F11或者右键单击任意一个工作表标签,在弹出的右键快捷菜单单击“查看代码”进入VBA编辑环境,如下图所示:

2.在“代码窗口“中复制粘贴以下代码:

Sub RegTest()

    '定义正则表达式对象

    Dim oRegExp As Object

    '定义匹配字符串集合对象

    Dim oMatches As Object

    '创建正则表达式

    '定义要执行正则查找的文本变量

    Dim sText As String

    sText = "这是v一个正则表达式b的范例程序a代码"

    Set oRegExp = CreateObject("vbscript.regexp")

    With oRegExp

        '设置是否匹配所有的符合项,True表示匹配所有, False表示仅匹配第一个符合项

        .Global = True

        '设置是否区分大小写,True表示不区分大小写, False表示区分大小写

        .IgnoreCase = True

        '设置要查找的字符模式

        .Pattern = "[\u4e00-\u9fa5]+"

        '判断是否可以找到匹配的字符,若可以则返回True

        MsgBox .Test(sText)

        '对字符串执行正则查找,返回所有的查找值的集合,若未找到,则为空

        Set oMatches = .Execute(sText)

        '把字符串中用正则找到的所有匹配字符替换为其它字符

        MsgBox .Replace(sText, "")

    End With

    Set oRegExp = Nothing

    Set oMatches = Nothing

End Sub

如下图所示:

3.执行以上代码,将把 sText = "这是v一个正则表达式b的范例程序a代码" 变量中e79fa5e98193e4b893e5b19e338的中文字符全部删除,将只返回"vba"3个英文字符,如下图所示。其中的.Pattern = "[\u4e00-\u9fa5]+"表示匹配所有中文字符,Pattern属性是正则表达式对象的核心,当需要执行其它查找替换时一般都只需更改Pattern属性即可。

4.一些常见的正则Pattern如下:

[0-9]表示匹配任意一个数字

[a-zA-Z]表示匹配任意一个英文字母

[\u4e00-\u9fa5]表示匹配任意一个中文字符


没法表示。在VBA里可以调用正则表达式。

可以用vba完成,按住alt依次按7a686964616fe4b893e5b19e338f11,i,m
粘贴代码后按f5即可在c列得到结果

Sub Test()
atr = Range("a65536").End(xlUp).Row
btr = Range("b65536").End(xlUp).Row
a = Range("a1:a" & atr).Value
b = Range("b1:b" & btr).Value
ReDim c(1 To atr, 1 To 1)
Set reg = CreateObject("vbscript.regexp")
With reg
.Global = True
.IgnoreCase = True
For ar = 1 To atr
For br = 1 To btr
.Pattern = b(br, 1)
If .Test(a(ar, 1)) Then
c(ar, 1) = "匹配"
Exit For
End If
Next
Next
End With
Range("c1:c" & atr) = c
Set reg = Nothing
End Sub

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网