修剪一个string,因为它是在for循环中检索?
我有这个循环,从谷歌地图页面的业务检索电话号码。
For Each a In Array("_Xbe _ZWk kno-fv") aa = "" aa = IE.Document.getElementsByClassName(a)(0).innerText If Len(bb) > 0 Then Wksht.Cells(LngRow, 10) = aa Exit For End If Next
它工作的很好,但电话号码格式为(XX)XXXX XXXX。 我希望它是xxxxxxxxxx。 如何在for循环中修剪和拼接?
您将需要更改列的NumberFormat并使用replace来摆脱括号和空格。
Wksht.Columns(10).NumberFormat = "0000000000" For Each a In Array("_Xbe _ZWk kno-fv") aa = "" aa = IE.Document.getElementsByClassName(a)(0).innerText aa = Replace(aa, "(", "") aa = Replace(aa, ")", "") aa = Replace(aa, " ", "") If Len(bb) > 0 Then Wksht.Cells(LngRow, 10) = aa Exit For End If Next
强制正则expression式的答案…
For Each a In Array("_Xbe _ZWk kno-fv") aa = vbNullString aa = IE.Document.getElementsByClassName(a)(0).innerText If Len(bb) > 0 Then With New RegExp .Pattern = "[^\d]" .Global = True Wksht.Cells(LngRow, 10) = .Replace(aa, vbNullString) End With Exit For End If Next
注意:这需要Microsoft VBScript正则expression式的引用,或者您可以使用With CreateObject("VBScript.RegExp")
而不是With New RegExp
来使用后期绑定。
尝试下面的代码
For Each a In Array("_Xbe _ZWk kno-fv") aa = "" aa = IE.Document.getElementsByClassName(a)(0).innerText If Len(aa) > 0 Then aa =trim(aa) aa = mid(aa, 2,2) & mid(aa,6,4)& right(aa,len(aa)-10) Wksht.Cells(LngRow, 10) = aa Exit For End If Next