ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 13176|回复: 21

[求助] 再次请教:用VBA打开网页并输入相关信息

[复制链接]

TA的精华主题

TA的得分主题

发表于 2016-2-22 15:27 | 显示全部楼层 |阅读模式
本帖最后由 王南宁 于 2016-2-22 22:00 编辑

各位大神,新年好
小弟在此祝各位猴年大吉,心想事成,万事如意。
今小弟遇到个VBA打开网页并输入信息的问题,一时半会儿解决不了,望各位大神给予指教,谢谢
问题是这样的:
小弟想通过VBA代码,打开一个能解析地名经纬度的网站,网站打开后,通过VBA代码,自动将地名信息输入到搜索框中,最后,该网站根据输入的地名信息,自动解析出经纬度。现在的问题就是:如何将网站解析出的经纬度赋值给某一变量,或者将解析出的经纬度导入到Excel表格中,小弟的代码通过Msgbox读取出的解析结果是:object,代码如下:请各位大神指点一下,谢谢!

Sub 打开网站并输入相关信息()
Dim ie As Object, str As String
Set ie = CreateObject("InternetExplorer.application")
  With ie
   .Navigate "http://map.yanue.net/"  'Navigate方法可以打开指定的网页
   .Visible = True '打开后要显示网页
   Do While ie.ReadyState <> 4 '如果IE加载完成
   DoEvents '在窗体加载时转交操作权
   Loop
   .Document.All.tags("textarea")(0).Value = "四川省乐山市井研县水亭巷12号(足尔康足浴按摩店东北68米)" 'Document.All("元素名称或ID")
   .Document.All.tags("button")(0).Click 'submit方法可以提交表单内容到服务器,froms(0)表示当前doc中第一个表单
End With
Shell ("taskkill /f /im 360se.exe"): Shell ("taskkill /f /im IEXPLORE.exe") '关闭默认和360浏览器
MsgBox ie.Document.All("showResults")
Set ie = Nothing
End Sub


源码中的控件ID我觉得应该是 showResults ,但为何读取不出来呢?
该网站的解析结果如下图:
解析结果.jpg
打开该网页的源码,小弟猜想该网页的解析ID名为:showResults
小弟猜想的网页ID.jpg




TA的精华主题

TA的得分主题

 楼主| 发表于 2016-2-22 16:09 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
在线急等啊!!!

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-2-22 16:10 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
在线急等啊!!!

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-2-22 16:13 | 显示全部楼层
没人帮帮小弟吗?
痛哭有泪中

TA的精华主题

TA的得分主题

发表于 2016-2-22 16:54 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

Dim ie As New InternetExplorer
                      ...
Do Until ie.ReadyState = READYSTATE_COMPLETE
                      ...
.Document.All.tags("textarea")(0).Value
                      ...
.Document.All.tags("button")(0).Click

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-2-22 20:16 | 显示全部楼层
谢谢楼上这位仁兄的解答,我按照您的代码试了一下,但貌似还有些问题,所以再请这位仁兄帮忙看看,也请各位大神看看。小弟跪谢了
Sub 打开网站并输入相关信息()
Dim ie As Object
Set ie = CreateObject("InternetExplorer.application")
  With ie
   .Navigate "http://map.yanue.net/"  'Navigate方法可以打开指定的网页
   .Visible = True '打开后要显示网页
    Do Until ie.ReadyState <> READYSTATE_COMPLETE '如果IE加载宏完成
   DoEvents '在窗体加载时转交操作权
   Loop
   .Document.All.tags("textarea")(0).Value = "四川省乐山市井研县水亭巷12号(足尔康足浴按摩店东北68米)" 'Document.All("元素名称或ID")    ’问题就出在这一句,系统提示"对象变量with块未设置
   .Document.Forms(0).submit        'submit方法可以提交表单内容到服务器,froms(0)表示当前doc中第一个表单
End With
Set ie = Nothing
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-2-22 20:32 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
谢谢兄弟,我解决了

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-2-22 21:38 | 显示全部楼层
对了,还想再请问一下各位大神,我用下列代码能打开网页,并能让网页解析出代码输入的地址所对应的经纬度,现在的问题是:如何将解析出的经纬度赋值给某一变量,或者将解析出的经纬度导入到Excel表格中,小弟的代码通过Msgbox读取出的解析结果是:object,代码如下:请各位大神指点一下,谢谢
Sub 打开网站并输入相关信息()
Dim ie As Object, str As String
Set ie = CreateObject("InternetExplorer.application")
  With ie
   .Navigate "http://map.yanue.net/"  'Navigate方法可以打开指定的网页
   .Visible = True '打开后要显示网页
   Do While ie.ReadyState <> 4 '如果IE加载完成
   DoEvents '在窗体加载时转交操作权
   Loop
   .Document.All.tags("textarea")(0).Value = "四川省乐山市井研县水亭巷12号(足尔康足浴按摩店东北68米)" 'Document.All("元素名称或ID")
   .Document.All.tags("button")(0).Click 'submit方法可以提交表单内容到服务器,froms(0)表示当前doc中第一个表单
End With
Shell ("taskkill /f /im 360se.exe"): Shell ("taskkill /f /im IEXPLORE.exe") '关闭默认和360浏览器
MsgBox ie.Document.All("showResults")
Set ie = Nothing
End Sub
图片附件如下:

附件.rar

344.66 KB, 下载次数: 99

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-2-22 21:39 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2016-2-22 21:44 | 显示全部楼层
先完成查詢的部份。至於將查詢結果載入Excel,還要想想。
Sub 打开网站并输入相关信息()
    Dim ie As Object
    Dim myItem
    Dim myButton
    Dim Result
    Set ie = CreateObject("InternetExplorer.application")
    With ie
        .Navigate "http://map.yanue.net/"
        .Visible = True
        Do Until .ReadyState = 4
        Loop
        Set myItem = .Document.getelementbyid("addrs")
        myItem.Value = "四川省乐山市井研县水亭巷12号(足尔康足浴按摩店东北68米)"
        Set myButton = .Document.getelementbyid("toLatLngBtn")
        myButton.Click
    End With
End Sub
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-16 19:36 , Processed in 0.035995 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表