|
运行以下代码,只得到B列的手机,为什么不能将A列的手机全部提取,C列也应该有手机号码啊
下面的代码出了什么问题?
Sub 提取手机号码1()
arr = Range("a2:a" & Range("a65536").End(3).Row)
Set reg = CreateObject("vbscript.regexp")
reg.Pattern = "(\D|^)(1[34578]\d{9})(\D|$)"
reg.Global = True
For i = 1 To UBound(arr, 1)
s = arr(i, 1)
If reg.test(s) Then
Set mymatch = reg.Execute(s)
m = 2
For Each mat In mymatch
Cells(i + 1, m) = mat.SubMatches(1)
m = m + 1
Next
End If
Next i
End Sub
reg.Pattern = "(\D|^)(1[34578]\d{9})(\D|$)"
15118798939、15217549176
\D 已经被消耗了 , 第二次\D匹配不到了
====================================
这个数据可以 15118798939、、15217549176
15118798939、15217549176 想强壮的提取的话 , 貌似可行的方法:
1) 提一个 以后 .replce( ,"") 一下 ,然后再提取.
2) 非数字重复一下 , 再提取 15118798939、、15217549176
|
|