Excel 使用IE.Document.getElementById(“信息窗口”).innerText时,作为所需对象的错误消息

Excel 使用IE.Document.getElementById(“信息窗口”).innerText时,作为所需对象的错误消息,excel,web-scraping,vba,Excel,Web Scraping,Vba,我对VBA编程非常陌生&我一直在尝试捕获使用GPS坐标(纬度和经度)搜索时在谷歌地图上弹出的文本。我一直在使用网站www.gps-coordinates.net 到目前为止,我已经能够将GPS坐标传递到网站的输入框中,点击按钮,地址就会在谷歌地图的一个框中弹出。当我试图使用IE.Document.getElementById(“信息窗口”).innerText从框中获取地址时,我收到一条错误消息 需要运行时错误“424”对象 我无法理解代码所指的对象。我在互联网上搜索了一个解决方案,但找不到任何

我对VBA编程非常陌生&我一直在尝试捕获使用GPS坐标(纬度和经度)搜索时在谷歌地图上弹出的文本。我一直在使用网站www.gps-coordinates.net

到目前为止,我已经能够将GPS坐标传递到网站的输入框中,点击按钮,地址就会在谷歌地图的一个框中弹出。当我试图使用
IE.Document.getElementById(“信息窗口”).innerText
从框中获取地址时,我收到一条错误消息

需要运行时错误“424”对象

我无法理解代码所指的对象。我在互联网上搜索了一个解决方案,但找不到任何人面临类似的问题,所以找不到一个现成的解决方案。代码片段如下所述:

Sub GetPlaceName()

    Dim btn As Variant
    Dim IE As Object, Doc As Object
    Dim sDD1 As String, sDD2 As String
    Dim vAdd As Variant
    Dim lat As Integer, longt As Integer, latrow As Integer, longrow As Integer

    latrow = ActiveSheet.Cells(Rows.Count, "B").End(xlUp).Row - 1
    longrow = ActiveSheet.Cells(Rows.Count, "C").End(xlUp).Row - 1
    If latrow <> longrow Then
        MsgBox "The number of Latitudes & Longitudes are not equal. " & vbNewLine & " PleaseCheck...."
    Else
        Range("B2").Select
        For i = 2 To latrow
            Set IE = CreateObject("InternetExplorer.Application")
            IE.Visible = True
            IE.navigate "http://www.gps-coordinates.net/"
            Do
                DoEvents
            Loop Until IE.ReadyState = READYSTATE_COMPLETE
            Set Doc = IE.Document
            Doc.getElementById("latitude").Value = Range("B" & i).Cells.Value
            Doc.getElementById("longitude").Value = Range("C" & i).Cells.Value
            With Doc
                Set elems = .getElementsByTagName("button")
                For Each e In elems
                    If e.getAttribute("onclick") = "codeLatLng(1)" Then
                        e.Click
                        Exit For
                    End If
                Next e
            End With
            Do
                DoEvents
            Loop Until IE.ReadyState = READYSTATE_COMPLETE
            sDD1 = IE.Document.getElementById("info_window").innerText
            vAdd = Split(sDD1, vbNewLine)
            Cells(i, "E").Value = vAdd
            IE.Quit
            Set IE = Nothing
            Set Doc = Nothing
        Next i
    End If

End Sub
子GetPlaceName()
作为变体的Dim btn
尺寸IE作为对象,文档作为对象
尺寸sDD1为字符串,sDD2为字符串
Dim-vAdd作为变体
Dim lat为整数、longt为整数、latrow为整数、longrow为整数
latrow=ActiveSheet.Cells(Rows.Count,“B”).End(xlUp).行-1
longrow=ActiveSheet.Cells(Rows.Count,“C”).End(xlUp).行-1
如果是拉特罗·朗罗,那么
MsgBox“纬度和经度的数量不相等。”&vbNewLine&“请检查…”
其他的
范围(“B2”)。选择
对于i=2至latrow
设置IE=CreateObject(“InternetExplorer.Application”)
可见=真实
即“导航”http://www.gps-coordinates.net/"
做
多芬特
循环直到IE.ReadyState=ReadyState\u完成
设置文档=即文档
Doc.getElementById(“纬度”).Value=范围(“B”和“i”).Cells.Value
Doc.getElementById(“经度”).Value=范围(“C”&i).Cells.Value
和医生
Set elems=.getElementsByTagName(“按钮”)
对于元素中的每个e
如果e.getAttribute(“onclick”)=“codeLatLng(1)”则
e、 点击
退出
如果结束
下一个e
以
做
多芬特
循环直到IE.ReadyState=ReadyState\u完成
sDD1=IE.Document.getElementById(“信息窗口”).innerText
vAdd=拆分(sDD1,vbNewLine)
单元格(即“E”)。值=vAdd
即退出
设置IE=无
设置文档=无
接下来我
如果结束
端接头
我相信一定有一个很小的错误,我无法弄清楚。对你们中的一些人来说,这看起来一定很愚蠢,但我真的需要帮助来解决这个问题。希望尽快收到回复。。。提前感谢:-)

尝试使用

Set IE = new SHDocVw.InternetExplorer
而不是

Set IE = CreateObject("InternetExplorer.Application")

这对我来说从未失败过。

谷歌地图JavaScript API将更好地工作。