如何用excel中的VBA的正则表达式提取出字符串?
比如字符串“柴塘河节制闸3300×4960平面钢闸门”我想得到3300余4960这两个整数,不知道如何提取.如何用正则表达式提取呢?...
比如字符串“柴塘河节制闸3300×4960平面钢闸门”
我想得到3300余4960这两个整数,不知道如何提取.
如何用正则表达式提取呢? 展开
我想得到3300余4960这两个整数,不知道如何提取.
如何用正则表达式提取呢? 展开
4个回答
展开全部
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 Function5、然后运行就可以得到结果了。
展开全部
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可以将两个数改为赋值给两个变量。
追问
假设两个变量分别赋值给BBB与HHH,应该如何完整的写代码?
追答
Debug.Print oMatches(0).submatches(0) '第一个数
Debug.Print oMatches(0).submatches(1) '第二个数
改成:
BBB=oMatches(0).submatches(0)
HHH=oMatches(0).submatches(1)
就行了,
可以对数据进行计算,如:
乘积=BBB*HHH
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
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
追问
具体的代码呢?
追答
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |