私はこれに近づいたと思ったので、コードは整っていない住所の列を通り、別の場所でgoogleの検索URLを生成してから、アドレスのGoogleを引っ張って第3列に書き込みます。forループが異なるため、VBAのネストループが機能しません。
セルの位置を指定しても動作するまでには、カラム内のすべてのURLを1つずつ書き込んでいく必要があります。
は、だから、私はIE.Navigateライン上のオートメーションエラーを取得し、それは動作しません言うまでもなく「のは、別のループでのgetElementsByClassNameを入れてみましょう」と思いました。
Private Sub CommandButton1_Click()
Dim IE As Object
' Create InternetExplorer Object
Set IE = CreateObject("InternetExplorer.Application")
' You can uncoment Next line To see form results
IE.Visible = False
'START LOOP
' URL to get data from
For r = 2 To 3
IE.navigate Sheets("Sheet1").Cells(r, "A").Value
Do While IE.Busy
Application.Wait DateAdd("s", 1, Now)
Loop
Dim dd As String, c
' Runs loops to look for the value within the classname, if classname alternates it will change the element, if null it will exit.
For Each c In Array("vk_sh vk_bk", "_Xbe")
On Error Resume Next
dd = IE.document.getElementsByClassName(c)(0).innerText
On Error GoTo 0
If Len(dd) > 0 Then Exit For
' Gives a confirmation message and writes the result to a cell
Cells(r, "C").Value = dd
Next
Next r
' /LOOP
' Show IE
IE.Visible = False
' Clean up
Set IE = Nothing
End Sub
注:2から3へ
は、リストはかなり長いので、私は最初のわずか2アドレスでそれをテストしたいです、正しいです。
VBAにもっと堪能な方は、どこに間違っているのか教えていただけますか?
更新:細胞
あなたは、URLの例のカップルを与えることはできますか? –
確かに [link] https://www.google.com.au/search?q=+Bathurst+92+Corporation+Ave+Robin+Hill+NSW+2795 [link] https:// www。 google.com.au/search?q=+Priceline+Mascot [link] https://www.google.com.au/search?q=+Null+Test それぞれ1です。完璧なアドレス、2. Googleのアドレスを介して置くまで無駄に。2.アドレスが見つからない場合でもそれが実行できるようにヌルチェッカー。 –
コメントリンクについて申し訳ありませんが、私はこれで初めてです。 –