如何用excel中的VBA的正则表达式提取出字符串?

2024-12-05 05:17:09
推荐回答(4个)
回答1:

1、首先打开需要编辑的Excel表格,进入到编辑页面中。

2、然后点击打开主菜单栏开发工具中的“Visual Basic”选项。

3、还可以鼠标右键单击工作标签,选择打开“查看代码”。

4、然后在弹出来的窗口中点击输入:

Function REFIND(str, re)

    Dim Reg As New RegExp

    With Reg

    .Global = True

    .Pattern = re

    Set matchs = .Execute(str)

        For Each Match In matchs

            y = y & " " & Match

        Next

    End With

    'MsgBox y

    REFIND = y

End Function

5、然后运行就可以得到结果了。

回答2:

软件版本:Office2007

方法如下:

1.利用正则表达式,提取A列的数字,并对数字求和:

2.Alt+F11,输入代码如下:

3.F5执行代码,返回Excel,得到结果:

回答3:

Sub RegTest()
    Dim oRegExp As Object
    Dim oMatches As Object
    Dim sText As String
    sText = "柴塘河节制闸3300×4960平面钢闸门"
    Set oRegExp = CreateObject("vbscript.regexp")
    With oRegExp
        .Pattern = "\D+(\d+)\D+(\d+)\D+"
        Set oMatches = .Execute(sText)
        Debug.Print oMatches(0).submatches(0)    '第一个数
        Debug.Print oMatches(0).submatches(1)    '第二个数
    End With
    Set oRegExp = Nothing
    Set oMatches = Nothing
End Sub

程序中sText字符串来源可以从单元格赋值,

Debug.Print可以将两个数改为赋值给两个变量。

回答4:

Sub t()
s = "柴塘河节制闸3300×4960平面钢闸门"
Set regxp = CreateObject("vbscript.regexp")
With regxp
.Global = True
.Pattern = "\d+"
For Each m In .Execute(s)
Debug.Print m
Next
End With
End Sub