vba 批量收集汇总EXCEL数据

 时间:2024-10-19 19:32:40

日常工作中经常会为了汇总多个工作薄,多个工作表的数据选择复制粘贴数据点击到手痛吗?现在分享一下本人使用vba自动汇总方案,希望给职场伙伴们一些帮助,

工具/原料

需要汇总的数据工作表(需要汇总的数据表头要一致)

启用EXCEL的开发工具选项卡

方法/步骤

1、按照下图整理需要统计擢爻充种的文件夹(当前文档目录下的文件夹),工作薄名,工作表名,对应返回数据(可以为空),是否更新,亲!格式不一样也可以哦,需要微调代码啊!

vba 批量收集汇总EXCEL数据

2、启用开发工具选项卡;1,点击选项,2,点击自定义功能区,3,勾选开发工具

vba 批量收集汇总EXCEL数据

vba 批量收集汇总EXCEL数据

3、设置控件;1,插入命令控件;2,修改控件名称及显示名;

vba 批量收集汇总EXCEL数据

vba 批量收集汇总EXCEL数据

4、进入VBA编程界面;复制艮劁飨戽以下代码到编辑窗口PrivateSub查询汇总_Click()config=vbYesNo+vbQuestion+vbDefault蚱澄堆别Button1ans=MsgBox("你确认更新数据吗?",config,"提示")Ifans=vbYesThenDimcnnAsObject,rsAsObject,SQL$,i&,A&,B&,C&,D&,E&,sFile$,sFile1$,sFile2$,sFile3$,sFile4$,sFile5$,sFile6$DimwbAsObject,wsAsObject'取得当前工作表的最后行数C=ActiveSheet.UsedRange.Rows.Count+1'取得当前工作表的最后列数E=ActiveSheet.UsedRange.Columns.Count'创建需要更新工作表的循环数据ForD=2ToApplication.WorksheetFunction.CountA(Worksheets("参数").Range("A:A"))'是否查询sFile1=Sheets("参数").Cells(D,5).Value'文件夹sFile2=Sheets("参数").Cells(D,1).Value'工作薄sFile3=Sheets("参数").Cells(D,2).Value'工作表sFile4=Sheets("参数").Cells(D,3).Value'返回值sFile5=Sheets("参数").Cells(D,4).Value'预算路径sFile=ThisWorkbook.Path&"\"&sFile2&"\"&sFile3&".xlsx"'判断是否查询IfsFile1="是"Then'判断参数内的工作表的名是否为空,为空时取值当前工作表名IfsFile4=""ThensFile6=ActiveSheet.NameElsesFile6=sFile4EndIfCells(1,11)="正在更新:"&sFile2&sFile3'锁定工作薄焦点Application.ScreenUpdating=FalseApplication.ShowWindowsInTaskbar=False'打开工作薄Setwb=Workbooks.Open(sFile,False,False)'打开工作表Setws=wb.Worksheets(sFile6)'当前表行数循环ForA=2Towb.Worksheets(sFile6).UsedRange.Rows.CountCells(C,1)=sFile5ForB=1ToECells(C,B+1)=wb.Worksheets(sFile6).Cells(A,B).ValueNextC=C+1Nextwb.CloseSavechanges:=True'解除工作薄焦点Application.ShowWindowsInTaskbar=TrueApplication.ScreenUpdating=TrueCells(1,11)="更新完成!"EndIfNextMsgBox"更新完成!",vbInformationIfans=vbNoThenExitSubEndIfEndIfEndSub

vba 批量收集汇总EXCEL数据

5、大功告成,测试图如下,第二行为表头行,第一列为对应返回数据,从第二列开始是汇总数据

vba 批量收集汇总EXCEL数据

统计单条件/多条件以外数据的方法 轻松学Excel:[36]根据条件引用对应值 怎么用EXCEL作抽奖器(超简单,赶紧学起) 怎么查看在excel中取消隐藏行的vba宏代码 Excel VBA简单的if逻辑判断
热门搜索
鱼图片大全可爱 公司办公室图片 地砖图片 银手镯图片 圆的图片