【分享成果,随喜正能量】珍惜自己生活当中的一点一滴,好好积攒自己的福,不贪婪,不消耗,懂得惜福,才是大智慧。

《VBA数据库解决方案》教程是我推出的第二套教程,目前已经是第一版修订了。这套教程定位于中级,是学完字典后的另一个专题讲解。数据库是数据处理的利器,教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法和实例操作,教程第一版的修订内容主要是完成所有程序文件的32位和64位OFFICE系统测试。

这套教程共两册,八十四讲,今后一段时间会给大家陆续推出修订后的教程内容。今日的内容是第32讲:ADO提取多个EXCEL工作表数据

excel中的数据设计(ADO提取多个EXCEL工作表数据)(1)

第三十二讲 利用ADO,实现多个EXCEL工作表数据提取

大家好,今日讲解VBA数据库解决方案的第32讲,利用ADO,秒杀实现多个EXCEL工作表的数据的提取。我曾经讲过:学以致用,如果我们学习了,没有利用,那么知识永远是知识,无法转换为我们实际的成果。所以我的资料中无论是《VBA代码解决方案》还是《VBA数据库解决方案》都在力求实用,把学到的知识放在实用之中。

到今天这讲,我们讲了30余讲的数据库相关的知识,大家一定对于连接,打开数据库不陌生了,今日我们给大家讲解利用ADO连接到EXCEL的方法,从而实现多个EXCEL数据汇总到一个文件中的方法。这讲的作用非常大,可以给很多的数据统计人员打开思路,工作中还望多多利用。

1 应用场景的具体分析

实例:我们有三个EXCEL数据表格,文件是07版本的,记录的是16年到18年的某项数据记录,我们要把这些数据表A列除去第一行的数据汇总到当前的同一个EXCEL表格中,同时把第一行的数据换成16年、17年、18年。估计大家看到我的这个实例,会联想到很多自己工作中的例子吧,我给出的这个三个源数据的文件及内容如下:

excel中的数据设计(ADO提取多个EXCEL工作表数据)(2)

16年数据:

excel中的数据设计(ADO提取多个EXCEL工作表数据)(3)

17年数据:

excel中的数据设计(ADO提取多个EXCEL工作表数据)(4)

18年数据:

excel中的数据设计(ADO提取多个EXCEL工作表数据)(5)

要实现我们的目的,如果按照正常的VBA操作,我们要逐个打开这三个文件,然后利用循环语句,把这些数据提取处理,这样的处理当然可以,我们今天要讲的是利用ADO实现我们的目的。

2 实现多个EXCEL工作表的数据提取的代码及代码分析

代码如下:

Sub mynz_32() '第32讲,利用ADO,秒杀实现多个EXCEL工作表的数据提取

[代码见教程]

End Sub

代码截图:

excel中的数据设计(ADO提取多个EXCEL工作表数据)(6)

代码讲解:

1)

arr = Array("16年", "17年", "18年") 建立一个数组用来放三个文件的名字

2)

For i = 0 To UBound(arr)

strPath = ThisWorkbook.Path & "\" & arr(i) & ".xlsx"

strTable = "[sheet1$]"

'建立连接

cnADO.Open "provider=Microsoft.ACE.OLEDB.12.0;extended properties='excel 8.0;hdr=no;imex=1';data source=" & strPath

strSQL = "select F1,F2,F3,F4,F5 from " & strTable

Cells(t, 1).CopyFromRecordset cnADO.Execute(strSQL)

cnADO.Close

Next i

先后建立三次连接,连接到这三个EXCEL文件。其中Cells(i, 1).CopyFromRecordset cnADO.Execute(strSQL) 语句是拷贝出数据,strSQL = "select F1,F2,F3,F4,F5 from " & strTable 是指从工作表中取的是第A,B,C,D,E列的数据。

下面看代码的执行:

excel中的数据设计(ADO提取多个EXCEL工作表数据)(7)

今日内容回向:

1 如何处理多工作表的数据汇总?

2 ADO如何连接到EXCEL文件?

本讲内容参考程序文件:VBA与数据库操作(第一册).xlsm

excel中的数据设计(ADO提取多个EXCEL工作表数据)(8)

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

excel中的数据设计(ADO提取多个EXCEL工作表数据)(9)

【分享成果,随喜正能量】不为迎合他人,去做自己不喜欢做的事,选择一种既不用违背本心、降低人格去刻意讨好,又让人觉得舒服、容易接受的社交风格。为了迎合别人而违背自己本心的社交关系,往往是难以维系的。

,