【分享成果,随喜正能量】一个人心态好,人缘就好,因为懂得宽容;一个人心态好,做事就顺利,因为不拘小节;一个人心态好,生活就愉快,因为懂得放下,所以每个人千万别让脾气和本事一样大,越有本事的人越没脾气。心态好的人,处处圆融,处处圆满,是最大的财富。。
《VBA信息获取与处理》教程是我推出第六套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。这部教程给大家讲解的内容有:跨应用程序信息获得、随机信息的利用、电子邮件的发送、VBA互联网数据抓取、VBA延时操作,剪贴板应用、Split函数扩展、工作表信息与其他应用交互,FSO对象的利用、工作表及文件夹信息的获取、图形信息的获取以及定制工作表信息函数等等内容。程序文件通过32位和64位两种OFFICE系统测试。是非常抽象的,更具研究的价值。
教程共两册,八十四讲。今日的内容是专题十:“利用QueryTables抓取网络数据”:VBA中QueryTables对象及方法简介
第一节 利用QueryTables提取网页数据的基础
QueryTables法,是excel自带的方法,和xmlhttp类似,也是GET或POST方式发送请求,然后得到服务器的response返回到单元格内。
优点:excel自带,可以通过录制宏得到代码,处理table很方便。代码简短,适合快速获取一些存在于源代码的table里的数据。处理table方便,代码简短。
缺点:无法模拟referer等发包头。
我们在这节中要来简单认识一下QueryTables。
1 QueryTables对象
QueryTable对象代表一个利用从外部数据源(如SQL Server、Microsoft Access数据库、网络数据等)返回的数据生成的工作表表格。
QueryTable对象是QueryTables集合的成员。
2 QueryTables方法
1)QueryTables.Add 方法,使用QueryTables集合对象的Add方法可新建一个查询表。
语法: 表达式.Add(Connection, Destination, Sql)
参数:表达式:一个表示查询表对象的变量。
Add:新建一个查询表。
Connection:Varian,是查询表的数据源。查询表的数据源。可为连接数据库的连接字符串,也可以是一个Web查询。Web查询字符串的格式如下:URL;<url>其中“URL;”是必需的,字符串的其余部分作为Web查询的URL。
Destination:必需 Range查询表目标区域 (查询结果表放置的区域) 左上角中的单元格。目标区域必须在工作表中包含表达式所指定的查询表对象。
Sql:在 ODBC 数据源上运行的 SQL 查询字符串。当使用的数据源为 ODBC 数据源时,该参数可选(如果不在此处指定该参数,则应该在查询表刷新之前使用查询表的 Sql 属性进行设置)。当将 QueryTable 对象、文本文件、ADO 或 DAO Recordset 对象指定为数据源时,不能使用该参数。
2) Refresh方法 使用QueryTable对象的Refresh方法可更新外部数据区域(QueryTable)。该方法的语法格式如下:表达式.Refresh(BackgroundQuery)
参数BackgroundQuery如果为True,则在数据库建立连接并提交查询之后,将控制返回给过程,QueryTable在后台进行更新。如果为False,则在所有数据被取回到工作表之后,将控制返回给过程。如果没有指定该参数,则由BackgroundQuery属性的设置决定查询模式。
在Excel建立一个成功的连接之后,将存储完整的连接字符串,这样,以后在同一编辑会话中调用Refresh方法时就不会再显示提示。通过检查Connection属性的值可以获得完整的连接字符串。
如果成功地完成或启动查询,则Refresh方法返回True;如果用户取消连接或参数对话框,该方法返回False。
注意:直到调用Refresh 方法时,由该方法创建的查询不运行。
3) QueryTables.Item 方法 从集合中返回一个对象。
语法:表达式.Item(索引)
参数:
表达式:一个表示查询表对象的变量。
Index 必需 Variant 对象的名称或索引号。
返回值: 包含在集合中的一个 QueryTable 对象。
3 QueryTables属性
1) QueryTables.Application 属性 当使用不指定对象识别符的情况下,此属性将返回一个Application 对象,表示 Microsoft Excel 应用程序。如果使用对象识别符,本属性返回一个代表指定对象 (可对一个 OLE 自动化对象使用该属性来返回该对象的应用程序) 创建者的Application对象。只读.
2) QueryTables.Count 属性 返回long 类型的值,该值代表集合中对象的数目。
语法: 表达式 .Count
3) QueryTables.Creator 属性 返回一个 32 位整数,它指示在其中创建此对象的应用程序。只读的long 类型的值。
语法: 表达式 .Creator
表达式 一个表示查询表对象的变量。
如果该对象是在 Microsoft Excel 中创建的,则此属性返回字符串 XCEL,它等同于十六进制的数字 5843454C。Creator 属性是为 Macintosh 上的 Microsoft Excel 设计的,在 Macintosh 上,每个应用程序都具有一个四字符的创建者代码。例如,Microsoft Excel 的创建者代码为 XCEL。
3) QueryTables.Parent 属性 返回指定对象的父对象。只读的。
语法: 表达式 .Parent
好了,关于QueryTables的基本讲解就到这里,下节开始我们的具体应用。
本节知识点回向:QueryTables的属性和方法有哪些?
我20多年的VBA实践经验,全部浓缩在下面的各个教程中,教程学习顺序:
【分享成果,随喜正能量】人生,不可能一帆风顺,有得就有失,有爱就有恨,有快乐就会有苦恼,有生就有死,生活就是这样。骨宜刚,气宜柔,志宜大,胆宜小,心宜虚,言宜实,慧宜增,福宜惜。做人要以礼义交际,以廉耻律己!。
本文暂时没有评论,来添加一个吧(●'◡'●)