在excel vba中内置了QueryTable对象可以存储从外部数据源导入的数据。
QueryTable对象不仅可以导入网页中的表格数据,还可以连接利用ADO技术访问的外部数据源的数据。
本文介绍用QueryTable对象采集网页表格数据的步骤:
- 先用QueryTables对象的Add方法创建一个链接到网页的QueryTable对象;
- 设置QueryTable对象的相关属性,如要采集的表格序号属性WebTables;设置刷新的频率属性RefreshPeriod等。
- 利用QueryTable对象的Refresh方法刷新数据,开始采集。
代码如下:
Sub QQ1722187970() Dim oQB As QueryTable Dim oWK As Worksheet Set oWK = Excel.ActiveSheet sUrl = "URL;http://www.mca.gov.cn/article/sj/tjbz/a/2018/201803131439.html" With oWK '如果没有查询表,则新建一个 If .QueryTables.Count = 0 Then Set oQB = oWK.QueryTables.Add(sUrl, oWK.Range("a1")) Else '如果有,则把第一个查询表改为网页查询 Set oQB = oWK.QueryTables(1) With oQB .Connection = "URL;http://www.mca.gov.cn/article/sj/tjbz/a/2018/201803131439.html" End With End If End With With oQB '指定只导入指定的表格 .WebSelectionType = xlSpecifiedTables '要导入的表格序号 .WebTables = 1 '设置刷新的频率,以分钟为单位,如果设置为0,表示不定时更新 .RefreshPeriod = 0 '开始刷新 .Refresh End With End Sub
由于每次用QueryTables对象的Add方法都会添加一个新的连接对象,所以这里先判断是否存在QueryTable对象,不存在才添加,如果存在,直接使用第一个QueryTable对象刷新网页。
发表评论