我已经完成了:我必须通过在IE或默认浏览器中显示它来使用地址或位置或纬度和经度在Excel或浏览器中显示谷歌地图,我在excel中尝试了MS Web浏览器组件,但这是以兼容模式打开。我尝试使用需要安装的Microsoft power map。
我需要帮助:从打开的地图我需要选择位置/地址我需要在我的Excel工作表中更新纬度和经度值。
除了这种简单的方法,我需要向谷歌地图发送纬度和经度,同时我需要通过点击地图从地图接收纬度和经度。在excel Web浏览器中没有正在运行的脚本。
答案 0 :(得分:2)
要解决这个问题,你必须克服两个障碍:
值得庆幸的是,谷歌新推出的Map的URL非常适合解析...而且微软的WebBrowser控件内置了一些不错的钩子。
您可能有一些类似于以下内容的代码:
Sub webbrowsergo()
WebBrowser1.Navigate2 ("https://www.google.com/maps/@39.1240533,-79.8562553,16z")
End Sub
我认为这会将网络浏览器控件发送到西弗吉尼亚州的某个地方。
现在,在WorkSheet的VBA代码中,您可以使用WebBrowser_NavigateComplete2
事件挂钩。一旦URL完全加载,此事件将触发。就像任何人移动地图或更改缩放一样。
在工作表的VBA代码中,点击VBE顶部的第一个下拉框,选择您的WebBrowser控件(可能名为WebBrowser1
或其他)。然后在第二个下拉框中,找到NavigateComplete2
事件。
它看起来像:
您的VBE将为您创建一个新子,您可以添加以下内容:
Private Sub WebBrowser1_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
Debug.Print "Navigation complete, URL=" & URL
Dim strLat As String, strLong As String
strLat = Split(URL, "@")(1)
strLat = Split(strLat, ",")(0)
strLong = Split(URL, ",")(1)
Debug.Print strLat, strLong
End Sub
所以,非常简单的东西。我们使用Navigate2Complete
控件的WebBrowser
事件,每次WebControl更新时都会触发该事件,并且有一个名为URL
的好参数,其中包含刚刚加载到WebBrowser控件的URL。我们使用Split()
来解析它并抓住Lat和Long。
Debug.Print
只是将变量写入VBE的立即窗口。如果您还没有,请转到查看>>立即窗口将其打开。显然,您可以更改它以将Lat和Long推送到工作表或其他内容。