在Excel中填入数据,用VBA进入指定网站进行查询?
发布网友
发布时间:2022-04-23 01:05
我来回答
共1个回答
热心网友
时间:2023-10-09 18:20
VBA打开网站进行查询要受许多条件进行*,例如网站需要登录,特别是登录要进行图形验证码填写的,编程会非常困难,甚至几乎无法实现。
VBA与浏览器交互有两种方式,一是黑客方式,使用CreateObeject("InternetExplorer.Application")打开一个浏览器对象,然后使用IE的地址栏浏览网页,以及使用IE的DOM结构对浏览器里面的输入数据、提交表单。此方式的难点在于要分析网页的DOM结构,找到填数的具体控件名称。好处是只要控件名称不变,哪怕窗口最小化、在后台、被遮挡都可以执行。
另外一种是外挂方式,使用AppActivate切换窗口,SendKeys发送按键,MouseEvent控制鼠标。此方式无需研究网页的DOM结构,但是屏幕分辨率不同、窗口位置不同、网页控件位置变化、特别是没有设置快捷键的时候,代码不得不修改。追问是个查询网站,不需要登录,直接将Excel中输入的数据代入网站查询框进行查询,将查询到的值返回Excel表格中
追答如果无需登录,只查询网页内容,那么补充下面两种方式:
一是网页查询,增加一个工作表,里面选【数据】、【获取外部数据】、【来自网页】,指定网址,网页的所有内容都会在工作表里面,VBA需要做的代码一般是修改查询网址,刷新查询,使用数据。
二是使用AJAX的CreateObject("Microsoft.XMLHTTP")来进行查询,下面是我写的一个例子: