本帖最后由 林木水 于 2021-12-14 14:48 编辑
代码如下,思路用正则规则表达式就可以了。很简单,结果见附件
Sub 正则表达式()
Dim rxg As object
set rxg=CreateObject("vbscript.regexp")
Dim sr, m, mat
Dim arr(), brr(), k As Integer
With rxg
.Global = True
.Pattern = "[\u4e00-\u9fa5]{1,}"
sr = Sheet1.Range("a1").Value
Set mat = .Execute(sr)
For Each m In mat
k = k + 1
ReDim Preserve arr(1 To k)
arr(k) = m
Next m
k = 0
.Pattern = "[^\u4e00-\u9fa5]{1,}"
Set mat = .Execute(sr)
For Each m In mat
k = k + 1
ReDim Preserve brr(1 To k)
brr(k) = m
Next m
End With
Sheet2.Range("a1").Resize(UBound(arr)) = Application.Transpose(arr)
Sheet2.Range("b1").Resize(UBound(arr)) = Application.Transpose(brr)
End Sub