【问题标题】:Excel VBA and Google MapsExcel VBA 和谷歌地图
【发布时间】:2017-06-08 14:45:12
【问题描述】:

我正在使用 Excel VBA 开发一个应用程序,我需要一种方法让 Google 地图自动捕获我的位置(无需我输入我的地址)。这可以通过 Excel VBA 实现吗?

【问题讨论】:

  • 您可以尝试通过 IE 打开 Google 地图,然后导航 ID 为:id="widget-mylocation" 的按钮(位于右下角)。

标签: excel google-maps-markers vba


【解决方案1】:

这不是自动的。我刚刚运行了以下 vba 的 sn-p,它是 post 的一部分,以将 Web 浏览器嵌入到工作表中,并发现它有点挑剔,但它最终确实有效(根据代码中显示的内容,您需要 2 张在您运行之前,如果它不起作用,您将不得不删除 Web 浏览器对象并重新运行)。有大量示例介绍如何向此 Web 浏览器对象上显示的地图添加标记(这里是 one

 Sub AddWebBroswerToWorksheet()

    Dim myWebBrowser
    Dim wb, doc, x As Long

    Sheet2.Activate

    Set myWebBrowser = Sheet1.OLEObjects.Add(ClassType:="Shell.Explorer.2", _
                       Left:=147, Top:=60.75, Width:=300, Height:=200)

    Set wb = myWebBrowser.Object
    With wb
         .Navigate "about:blank"
         .Document.Open "text/html"
         For x = 1 To 100
           .Document.write "init<br>"
         Next x
         .Document.Close
         .Document.body.Scroll = "no"
    End With

    Sheet1.Activate

    wb.Navigate "http://maps.google.com/maps?q=49.2827,-123.1207"

End Sub

从那里您应该能够通过 vba 与之交互以显示放置在适当网站上的标记。换句话说,要得到你想要的东西需要一些开发。

【讨论】:

  • 抱歉,这个答案与我的问题不符。我已经在使用谷歌 api 打开谷歌地图。我只需要一种方法来自动捕获我在其中的当前位置
  • 您可以根据编辑的答案相应地更改 url 字符串以显示您的纬度和经度。
  • 非常感谢您的尝试,但我相信您并没有完全理解我的问题:我只想让 Google 地图通过将此信息插入到 Excel 表格中来通知我我的位置工作表。但是,我希望它自动执行此操作,即无需先通知我的位置
  • 附加说明:当我在我的电脑浏览器中打开谷歌地图时,我的位置会自动出现一个标记。我想通过 vba excel 捕获的正是这个位置
  • 如果 excel 可以捕获返回 url,那么您也许可以掌握它。我不知道它是否可以。
【解决方案2】:

希望您仍在使用 stackoverflow!在使用谷歌地图时,我发现了一个可以使用的快速 URL 小技巧。您可以使用 URL 来设置路线或自动跟踪您的位置。

https://www.google.com/maps/dir/my+location/

此链接将在加载时自动生成您地址的新链接(谷歌地图通过加载大量的 Div 块,因此每个部分都有一个生成的 URL)。

如果您想使用链接获取路线,请尝试以下操作

https://www.google.com/maps/dir/my+location/Secondary address goes here

【讨论】:

    【解决方案3】:

    你可以试试这样的:

     Sub GoogleMaps()
       Dim ie As Object
       Dim url As String
       Dim Location
    
       url = "https://www.google.com/maps/dir/my+location"
    
       Set ie = CreateObject("InternetExplorer.Application")
       With ie
       .Visible = True
       .navigate url
            .Top = 5
            .Left = 5
            .Height = 1300
            .Width = 1900
           While ie.readyState <> 4
    
        Wend
    
        While ie.readyState <> 4
            DoEvents
        Wend
    End With
      Set ie = Nothing
       End with
     End Sub
    

    请记住,@MercPls 在上面的答案中提到的是永久链接。您可以根据自己的需要对其进行修改。如果您对不同的位置或某事感兴趣,您可以使用一些 Excel 单元格值解析此永久链接。

    【讨论】:

      猜你喜欢
      • 2018-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-13
      • 2010-11-07
      • 2015-12-20
      • 2012-04-26
      • 2011-02-08
      相关资源
      最近更新 更多