excel网页数据抓取vba(【分享成果,随喜正能量】珍惜自己生活当中的一点一滴,好好积攒自己的福)
优采云 发布时间: 2022-01-23 21:18excel网页数据抓取vba(【分享成果,随喜正能量】珍惜自己生活当中的一点一滴,好好积攒自己的福)
【分享成果,欢喜正能量】珍惜生命的每一点,积累属于自己的福分,不贪,不消耗,懂得珍惜福报是大智慧。
《VBA数据库解决方案》教程是我推出的第二套教程,目前是第一版。本套教程定位中级,是学完词典后的又一题解说。数据库是数据处理的强大工具。教程中详细介绍了使用ADO连接ACCDB和EXCEL的方法和示例操作。教程第一版的修订内容主要是完成所有程序文件的32位和64位OFFICE系统测试。
这套教程由两卷八十四讲组成。今后,我们将陆续发布修改后的教程内容。今天的内容是第32讲:ADO从多个EXCEL工作表中提取数据
第32讲 使用ADO从多个EXCEL工作表中提取数据
大家好,今天为大家讲解VBA数据库解决方案第32讲。使用ADO,可以在几秒钟内实现多张EXCEL工作表的数据提取。我曾经说过:学以致用。如果我们学习而不使用它,那么知识将永远是知识,无法转化为我们的实际成果。因此,在我的资料中,《VBA 代码解决方案》和《VBA 数据库解决方案》都力求实用,将所学知识付诸实践。
到目前为止,我们已经讲了30多个数据库相关的知识。您必须熟悉连接和打开数据库。今天给大家讲解一下使用ADO连接EXCEL的方法,可以将多个EXCEL数据聚合为一个。文件中的方法。这个讲座的作用非常大,可以为很多数据统计学家开辟思路,希望在工作中更多的运用到。
1 应用场景具体分析
例子:我们有三个EXCEL数据表,文件是07版本,记录了16到18年的数据记录,我们需要把这些数据表除了第一行之外的A列的数据汇总到同一个当前EXCEL中表,同时将第一行的数据替换为16年、17年、18年。估计看到我的例子,你会想到自己工作中的很多例子。我给出的三个源数据的文件和内容如下:
16年数据:
17年数据:
18年数据:
为了达到我们的目的,如果我们按照正常的VBA操作,我们需要将这三个文件一个一个打开,然后使用循环语句来提取和处理数据。当然,可以进行这种处理。今天我们要讲的就是用ADO来实现我们的Purpose。
2 实现从多个EXCEL工作表中提取数据的代码和代码分析
代码显示如下:
sub mynz_32() '第32讲,使用ADO、seckill实现从多个EXCEL工作表中提取数据
[代码见教程]
结束子
代码截图:
代码说明:
1)
arr = Array("16 years", "17 years", "18 years") 创建一个数组来保存三个文件的名称
2)
对于 i = 0 到 UBound(arr)
strPath = ThisWorkbook.Path & "\" & arr(i) & ".xlsx"
strTable = "[sheet1$]"
'建立连接
cnADO.Open "provider=Microsoft.ACE.OLEDB.12.0;扩展属性='excel 8.0;hdr=no;imex=1';data source="&strPath
strSQL = "从 " & strTable 中选择 F1,F2,F3,F4,F5
单元格(t, 1).CopyFromRecordset cnADO.Execute(strSQL)
cnADO.关闭
接下来我
依次建立三个连接来连接这三个EXCEL文件。其中,Cells(i, 1).CopyFromRecordset cnADO.Execute(strSQL) 语句是复制数据,strSQL = "select F1,F2,F3,F4,F5 from " & strTable 指的是数据在 A、B、C、D、E 列中。
让我们看看代码的执行:
今天的内容回来了:
1 如何处理多个工作表的数据汇总?
2 ADO如何连接EXCEL文件?
本讲内容参考程序文件:VBA与数据库操作(第一卷).xlsm
我 20 多年的 VBA 实践经验都浓缩在下面的各种教程中:
【分享成果,以正能量欢欣鼓舞】不要做自己不喜欢做的事来迎合别人,选择一种不违背内心或降低个性去刻意讨好,但也会让让人感觉舒服,容易接受。为了迎合他人而违背自己内心的社会关系通常难以维持。