微信公众号:yhjbox(永恒君的百宝箱),获取最新文章、资源。

Excel VBA实例(36) – 一键提取网页中的表格数据

Excel VBA 实例 永恒君 2515℃ 0评论

背景需求

先说一下问题背景:
http://www.pm25.in/shenzhen 这个网站可以查看到深圳各个区的空气质量信息,每个小时更新一次。

图片

需求:把里面的表格信息快速提取并且保存。

Excel可以通过数据 – 自网站这个功能实现简单网页表格数据爬取,想必不少朋友都应该知道并且使用过。

图片

这个方法对于一些简单的网页来说,还是很实用的。但是对于某些网页,就比如pm25.in,用上面的方法则会不太方便,如下图:

图片

直接选中表格上方的√,无法导入。

而如果直接勾选整个页面的话,又会提取到除了表格之外的很多无用的信息。

图片

效果演示

那么,这种情况呢,可以借助vba来灵活的解决这个问题。

先上效果:点击“更新”,直接提取表格信息

图片

然后点击“保存汇总”,将该时刻提取到的信息保存到汇总表,方便后续使用。

图片

核心代码

这整个过程其实不难,其中抓取表格数据最核心的功能代码就是下面这些,每一行代码的含义永恒君都标注在后面了。

如果要更换其他城市,只需要更改URL地址即可。

With Sheets(1).QueryTables.Add("URL;http://www.pm25.in/shenzhen", Range("A2")) '抓取网站网页地址
    .RefreshStyle = xlOverwriteCells '覆盖模式
    .WebFormatting = xlWebFormattingAll '包含全部格式
    .WebSelectionType = xlSpecifiedTables '指定table模式
    .WebTables = "1" '第1张table
    .Refresh False
End With

之后的保存、汇总就是一些常规的vba代码了。

需要说明的是:这个代码只适用于,网页源代码中包含有表格数据的网页。

如果你对这个内容感兴趣的话,可以在公号内回复「网页表格」获取vba文件进行试用吧~~

 

你可能还会想看:

 

VBA实例(35) – 一键批量ppt转pdf
VBA 实例(34) –  – 快速匹配出名称不完全相同的数据
VBA 实例(33) – 一键提取word中加粗文字
VBA 实例(32) – 批量替换隐藏的神秘字符
VBA 实例(31) – 为VBA代码自定义快捷键
VBA 实例(30) – 为多个sheets创建目录和超链接

 

欢迎交流!
微信公众号:永恒君的百宝箱
个人博客:www.yhjbox.com

转载请注明:永恒君的百宝箱 » Excel VBA实例(36) – 一键提取网页中的表格数据

喜欢 (4)
发表我的评论
取消评论
表情