暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

VBA中QueryTables提取在售理财项目数据

VBA语言専攻 2022-06-19
71
【分享成果,随喜正能量】有一天,当你尝尽了,社会的无情,经济的压力,爱情的不堪,人心的丑恶;你终究会领悟到,放下执念,善待自己,用心读书,努力赚钱,才是一个成年人最好的修养,前者使人不惑,后者使人不屈!记住,天上下雨地上滑,自己摔倒自己爬。
《VBA信息获取与处理》教程是我推出第六套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。这部教程给大家讲解的内容有:跨应用程序信息获得、随机信息的利用、电子邮件的发送、VBA互联网数据抓取、VBA延时操作,剪贴板应用、Split函数扩展、工作表信息与其他应用交互,FSO对象的利用、工作表及文件夹信息的获取、图形信息的获取以及定制工作表信息函数等等内容。程序文件通过32位和64位两种OFFICE系统测试。是非常抽象的,更具研究的价值。
教程共两册,八十四讲。今日的内容是专题十:“利用QueryTables抓取网络数据”:VBA中QueryTables提取在售理财项目数据

第二节  利用QueryTables提取在售理财项目网页数据

大家好,这讲讲解的是利用QueryTables实现抓取网页数据的具体应用,有了上一讲的基础讲解,我们就直接利用这些方法就可以达到我们的目的。

实用场景:利用QueryTables,抓取和讯网的在售理财项目的数据,网址是:http://data.bank.hexun.com/lccp/jrxp.aspx。现在的社会,无论是股票还是理财产品,关注的人都非常多,也希望在资本的市场运作中分得一杯羹,但钱生钱的投资大家还是要小心谨慎,不要被高利所诱惑,我这里只能提供给大家基础数据积累,没有丝毫操作的经验。

1  利用QueryTables实现抓取在售理财项目数据的思路分析

为了实现上述的场景,我们先看一看上述提供网址提供网页的信息:

上述的网页中,我要提取的是红色框框起来表的数据,我们进行一下思路的分析:首先清空一下回填数据的区域,然后用QueryTables.Add方法,在网页上提取第三个表的数据即可。提取表数据的时候可以选择一下格式的填充。

2  利用QueryTables实现抓取在售理财项目数据的代码实现

为了实现上述的思路,我给出了下面的代码:

Sub myNZ() 'QueryTable法提取在售理财项目网页数据
    Sheets("sheet1").Select
    Cells.ClearContents
    With ActiveSheet.QueryTables.Add("url;http://data.bank.hexun.com/lccp/jrxp.aspx", Range("a1"))
        .WebFormatting = xlWebFormattingNone '不包含格式
        .WebSelectionType = xlSpecifiedTables '指定table模式
        .WebTables = "3" '第3张table
        .Refresh False
    End With
   MsgBox ("OK")
End Sub
代码截图:
代码的讲解:

1)  Sheets("sheet1").Select
Cells.ClearContents
以上代码清空数据的回填区域。

2)With ActiveSheet.QueryTables.Add("url;http://data.bank.hexun.com/lccp/jrxp.aspx", Range("a1"))
上述代码指定加载网址http://data.bank.hexun.com/lccp/jrxp.aspx,的数据 ,Range("a1")是回填给工作表区域的左上角的单元格。
 3).WebFormatting = xlWebFormattingNone '不包含格式
WebFormatting 是对将要导入的工作表格式的设置,具体值如下:
xlWebFormattingAll          1       导入所有格式。
xlWebFormattingNone          2       不导入任何格式。
xlWebFormattingRTF          3       导入格式文本格式兼容的格式。

 4) .WebSelectionType = xlSpecifiedTables '指定table模式
WebSelectionType是对指定是整个网页、网页上的所有表还是只导入到查询表中的特定表的数据进行设置。它的具体值如下:

xlAllTables           2       所有表
xlEntirePage           1       整页
xlSpecifiedTables       3       指定表

5).Refresh False  使用QueryTable对象的Refresh方法可更新外部数据区域(QueryTable)。选择的参数False,则在所有数据被取回到工作表之后,将控制返回给过程

通过上述的代码,就可以完成我们的思路。

3  利用QueryTables实现抓取在售理财项目数据的实现效果

当我们点击运行按钮,如图的箭头所示,程序就会开始运行,抓取网页数据到工作表中。当然在实际的应用中,用户可以根据自己的实际需要完成抓取工作到指定的位置。
从而验证了我们思路的正确。从代码到实现的过程,非常的简洁,代码理解也非常的容易,这给我们的学习和利用带来了方便。

本节知识点回向:如何利用QueryTables在网页中抓取数据?

本节内容参考:010工作表.xlsm      

我20多年的VBA实践经验,全部浓缩在下面的各个教程中,教程学习顺序
 


【分享成果,随喜正能量】其实每个人都有惰性,当生活比较顺利又没有什么压力的时候,可怕的惰性就会翻天覆地地侵蚀人的创造力,想象力和积极性。所以呢,人最好还是有点压力的生活,不要想着什么路都顺顺畅畅为自己铺好了,自己什么都可以不努力。。

文章转载自VBA语言専攻,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论