|
Sub limonet()
Dim i%, j%, k%, Arr As Variant, Brr() As Variant, Ms As Object
Arr = Application.Transpose(Intersect(Sheet1.UsedRange, Range("A:A")))
For i = 1 To UBound(Arr)
If Len(Arr(i)) = 1 Then Arr(i) = Empty
If Arr(i) Like "粤*[A-Z]" Then Arr(i) = Arr(i) & " "
Next i
Arr = Split(Replace(Join(Arr), " ", "¥"), "¥")
With CreateObject("vbscript.regexp")
.ignorecase = True: .Global = True
For i = 0 To UBound(Arr)
.Pattern = "粤[a-z]+\d{4,5}(?!挂)"
j = j + 1: ReDim Preserve Brr(1 To 3, 1 To j)
Brr(1, j) = UCase(.Execute(Arr(i))(0))
.Pattern = "([一-龥]+)~([一-龥]{2})"
Set Ms = .Execute(Arr(i))
If Ms.Count - 1 Then
Do While Ms.Count - k
k = k + 1
ReDim Preserve Brr(1 To 3, 1 To j + k - 1)
Brr(1, j + k - 1) = Brr(1, j): Brr(2, j + k - 1) = Ms(k - 1).submatches(0): Brr(3, j + k - 1) = Ms(k - 1).submatches(1)
Loop
k = 0: j = UBound(Brr, 2)
Else
Brr(2, j) = Ms(0).submatches(0): Brr(3, j) = Ms(0).submatches(1)
End If
Next i
End With
Range("F2").Resize(j, 3) = Application.Transpose(Brr)
End Sub |
|