作者:绿色风
分类:
时间:2022-08-18
浏览:125
楼主 lrlxxqxa |
分享一段代码,适用于结构相同的多工作簿多工作表数据汇总。
- Private Sub CommandButton1_Click()
- Dim sh As Worksheet, arr%(), x%, m%, s1$, s2$, s3$, n%
- Dim cn As Object
- Set cn = CreateObject("adodb.connection")
- s1 = Dir(ThisWorkbook.Path & "\*.xls")
- m = Worksheets.Count
- Do While s1 <> ""
- If s1 <> "汇总.xls" Then
- ReDim Preserve arr(1 To m)
- cn.Open "provider=microsoft.jet.oledb.4.0;extended properties='excel 8.0;';data source= " & ThisWorkbook.Path & "\" & s1
- For Each sh In Worksheets
- n = n + 1
- arr(n) = sh.Range("a65536").End(xlUp).Row + 1
- Next sh
- For Each sh In Worksheets
- x = x + 1
- s2 = sh.Name
- s3 = "select * from [" & s2 & "$]"
- sh.Range("a" & arr(x)).CopyFromRecordset cn.Execute(s3)
- Next sh
- cn.Close
- x = 0: n = 0: Erase arr
- End If
- s1 = Dir
- Loop
- End Sub
aaaa.rar |
2楼 王鉴锋 |
具体怎么应用啊 |
3楼 qinhuan66 |
好好学习天天向上 |
4楼 心语星愿 |
VBA,目前还看不懂,努力学 |
5楼 peal |
谢谢有学习的需要 |
6楼 lgcmeli |
这个分享真的不错奥 |
7楼 youlin |
效果什么??? |
8楼 guang0001 |
学习了 |
9楼 guang0001 |
运算一次,数据没有问题 但是运算两次及两次以上,数据就会重复 |
10楼 ←☆╮自由メ |
vba,不懂 |
11楼 命犯乱魔 |
如果是对应区域求和呢? |
12楼 笑依然 |
第一步,打开VBA 在开发工具那 如图 1
第二步,插入-模板,复制代码,保存。
第三步,返回原表格,执行宏,如图2、图3,找到你刚录制的宏名,点执行,代码的效果就出来了3.png 2.png 1.png |
13楼 我是小马儿 |
恩,要加一个clear在前面就好了。 |
14楼 jellyn |
您好,我把这个代码用于汇总24个部门的考勤工作簿(每个部门的工作簿包含“月度考勤汇总表”及“月度考勤登记表”),运行宏后出现“月度考勤汇总表$”不是以有效名称,然后按调试后,指出该代码第20行。这是为什么呢? |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一