修剪一个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