|
本帖最后由 林木水 于 2021-12-20 17:41 编辑
- Sub 正则表达式()
- Dim arr, brr1(), brr2(), k As Integer, i As Integer, m, mat
- ' Dim reg As New RegExp
- Dim reg As Object
- Set reg = CreateObject("vbscript.RegExp")
- arr = Range("c2:c" & Cells(Rows.Count, "c").End(xlUp).Row)
- With reg
- .Global = True
- .MultiLine = True
- .Pattern = "(^[\u4e00-\u9fa5]{1,}\s*[\u4e00-\u9fa5]{1,})([^\u4e00-\u9fa5].*)"
- For i = 1 To UBound(arr, 1)
- Set mat = .Execute(arr(i, 1))
- For Each m In mat
- ReDim Preserve brr1(1 To i)
- ReDim Preserve brr2(1 To i)
- brr1(i) = m.SubMatches(0)
- brr2(i) = m.SubMatches(1)
- Next m
- Next i
- End With
- Range("D2").Resize(Cells(Rows.Count, "c").End(xlUp).Row, 2) = ""
- Range("D2").Resize(UBound(arr)) = Application.Transpose(brr2)
- Range("e2").Resize(UBound(arr)) = Application.Transpose(brr1)
- End Sub
复制代码 改了一下,你看下,你要用直接使用我这个附件,或者自己先插入一列。见附件,解决问题给最佳
|
|