【分享成果,随喜正能量】心如止水,乱则不明。很多事,你越是想去弄个清楚,反而越是困惑,心中一旦有了执念。就像线团,只会越扯越乱。子欲避之,反促遇之。凡事顺其自然就好。既来之。则安之,这才是生存之道。
《VBA信息获取与处理》教程是我推出第六套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。这部教程给大家讲解的内容有:跨应用程序信息获得、随机信息的利用、电子邮件的发送、VBA互联网数据抓取、VBA延时操作,剪贴板应用、Split函数扩展、工作表信息与其他应用交互,FSO对象的利用、工作表及文件夹信息的获取、图形信息的获取以及定制工作表信息函数等等内容。程序文件通过32位和64位两种OFFICE系统测试。是非常抽象的,更具研究的价值。
教程共两册,八十四讲。今日的内容是专题六“VBA中利用XMLHTTP完成网抓数据”的第6讲:VBA网抓在售理财项目数据表处理
第六节 利用XMLHTTP抓取在售理财项目数据的整体表处理
大家好,我们继续网抓内容的学习。在上一节中我们学习了如何在网页中提取出表数据,并把表的数据回填到EXCEL工作表中,主要利用了对返回的.responseText,进行必要的处理。但是,问题来了,这样处理需要对网页的源码进行解读,根据一些信息才能够提取出需要的数据,那么有没有好的方法直接提取出网页的表数据呢?
这一讲我们要介绍给大家一种更为直接的方法来直接拷贝表格的数据。
1 应用XMLHTTP网抓数据时实现整体表处理的代码实现
为了实现上述的要求,我给出了下面的代码:
Sub myNZD() '整体表的处理,和讯网在售理财项目的数据的抓取
【详细代码见教程】
End Sub
代码截图:
代码讲解:
1)With CreateObject("MSXML2.XMLHTTP")
.Open "GET", "http://data.bank.hexun.com/lccp/jrxp.aspx", False
.send
strText = .responseText
End With
上述代码和上一节的内容完全相同,发出网页的请求,返回结果strText 。
2)strText = "<table" & Split(Split(strText, "<table")(3), "</table>")(0) & "</table>"
这就代码的开始和结尾是表的标识,中间是提取出第三个表格的数据。
3)Set myDO = New DataObject 建立一个新的引用DataObject 这句的写法也可以是
Set myDO = CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
都是建立一个对系统中某个Com对象的引用。1C3B4210-F441-11CE-B9EA-00AA006B1A69 是标识符,就是COM对象的身份证号码2113。明确的称呼是 GUID(Globally Unique Identifier的简称,中文翻译为“全局唯一标示符”),在Windows系统中也称之为Class ID,缩写为5261CLSID。至于这串标识符所代表的某COM对象长啥样,你可以打开注册表编辑器(regedit),去查看。这里我们只是利用。
4) .SetText strText
是用以使用指定的 Clipboard 图象格式将文本字符串放到 Clipboard 对象2113中。
语法:object.SetText data, format
object 必需的。一个对象表达式,其值为“应用于”列表中的一个对象。
data 必需的。是被放置到剪贴板中的字符串数据。
Format 可选的。一个常数或数值,按照下列“设置值”中的描述,指定 Visual Basic 识别的剪贴板格式。
常数 值 描述
vbCFLink &HBF00 DDE 对话信息
vbCFRTF &HBF01 RTF 格式
vbCFText 1 (缺省值) 文权本
5).PutInClipboard 置于剪切板中
2 应用XMLHTTP网抓数据时实现整体表处理的实现效果
我们点击运行按钮,就会实现下面截图数据数据的抓取,还是非常快的。
这种处理表格的方法比上一讲要简单些,实现起来也比较容易,大家可以利用。
本节知识点回向:
提取网页数据如何实现表的整体处理?这种方案和直接处理responseText有什么不同?实现的效果有哪些差异?
本讲参考程序文件:006工作表.XLSM
我20多年的VBA实践经验,全部浓缩在下面的各个教程中,教程学习顺序:
【分享成果,随喜正能量】:不要让别人轻易看见你的善良,因为一旦他们看见了,就会期望你一直善良。人生就像铅笔一样,开始很尖,经历的多了,也就变得圆滑了。如果一直很尖,就会断。这个世界上的任何东西,都能轻而易举地背叛你。无论对谁太过热情,就增加了不被珍惜的概率,如果没有过度的欢喜,便不会有极度的悲伤。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。