VBA学习笔记4:将同一文件下的多个工作簿的数据汇总为一个工作表

1、删除新建的工作簿中除“汇总表”外的其他工作表;
2、遍历文件夹下的其他工作簿,并将每个工作簿的工作表复制到“汇总表”和新建表的其他sheet中。

效果如下:
同一文件夹中有多个工作簿,需要将工作簿的数据汇总在一个表中,并生成一个汇总表。

运行前:

运行后:

代码如下:

Sub 汇总同一文件下的工作簿数据()Dim file$ '用来存储文件夹下的工作簿名称Dim sht As Worksheet '用来存储各个工作簿中待复制的工作表,下称“各表”Dim rng As Range '用来存储各表待复制区域Dim k% 'k记录各表的行数Dim nk% 'nk记录行数Dim m% 'm为当前工作簿中表的个数'删除新建的工作簿除“汇总表”外的其他sheetFor Each sht In ThisWorkbook.WorksheetsIf sht.Name <> "汇总表" ThenApplication.DisplayAlerts = Falsesht.DeleteApplication.DisplayAlerts = TrueEnd IfNext sht'设置初始值m = m + 1 '工作簿只有1个表Cells.Clear '清空数据[a1] = "班级": [b1] = "姓名": [c1] = "语文": [d1] = "数学": [e1] = "英语"file = Dir(ThisWorkbook.Path & "\*.xlsx")  '仅读取xlsx格式的文件'以下是将文件夹中的数据簿复制到一个工作簿的不同表中Do While file <> ""Workbooks.Open ThisWorkbook.Path & "\" & fileSet sht = ActiveWorkbook.Worksheets(1) '打开后各表成为活动工作簿,sht存储这些工作簿的第一个工作表(假设这些数据都存在第一个表)k = WorksheetFunction.CountA(sht.[a:a]) 'k为各表的行数Set rng = sht.Range("a2:d" & k) 'rng为要复制的区域,rng为对象,一定要用set赋值nk = WorksheetFunction.CountA(ThisWorkbook.Worksheets("汇总表").[a:a]) 'nk为Sheet1表的行数rng.Copy ThisWorkbook.Worksheets("汇总表").Cells(nk + 1, 2) '粘贴到sheet1表,粘贴的起始单元格为nk+1行ThisWorkbook.Worksheets("汇总表").Range(Cells(nk + 1, 1), Cells(nk + 1, 1)(k - 1, 1)) = Replace(file, ".xlsx", "") '从a列的nk+1行开始赋值,赋值的行数是k-1,cells(m,n)(k,s)是指的以m行n列为首,向下移动k-1行n-1列,如果k=1,s=1则表示不变sht.Copy after:=ThisWorkbook.Worksheets(m) '将sht复制到现有sheet的后面,worksheets(1),worksheets(2)指的按照顺序的第一、二个工作表;sheet1是指我们在工作簿建表时的顺序,如果表被删除,则sheet1就不存在了,但是worksheets(1)是存在的ActiveSheet.Name = Replace(file, ".xlsx", "") '将新建的sheet重命名Workbooks(ThisWorkbook.Path & "\" & file).Close '关闭各表m = m + 1file = DirLoop
End Sub

VBA学习笔记4:将同一文件下的多个工作簿的数据汇总为一个工作表相关推荐

  1. Go学习笔记(一)windows下的Go 语言环境安装,并运行第一个Hello World程序

    1.首先,去下载Go的安装包,下载地址:https://golang.google.cn/dl/ ,其中有多个系统的安装包,选择windows底下的安装包即可: 2.下载后安装到D盘即可,默认安装成功 ...

  2. VBA学习笔记1:将同个文件夹中的工作簿汇总为一个工作簿,并建立目录超链接

    VBA学习笔记1:将同个文件夹中的工作簿汇总为一个工作簿,并建立目录超链接 1.将文件夹中的xlsx文件名复制到新工作簿: 2.将文件夹中的xlsx数据簿中的sheet复制到新表并重命名: 3.插入超 ...

  3. VBA学习笔记3:合并同一工作簿下的多个表格

    VBA学习笔记3:合并同一工作簿下的多个表格 1.建立一个新的汇总表: 2.将其他sheet数据复制到汇总表中. 效果如下: 需要将3个sheet的表的数据汇总起来 汇总后的数据: 代码如下: Sub ...

  4. VBA学习笔记(9)--生成点拨(1)

    VBA学习笔记(9)--生成点拨(1) 说明(2017.3.26): 1. 还没写完,写到新建文件夹了,下一步新建word,重命名,查找点拨,把点拨复制进去,因为要给点拨编号,应该会很麻烦 1 Pub ...

  5. VBA学习笔记2:将工作簿的表格拆分为工作簿

    VBA学习笔记2:将工作簿的表格拆分为工作簿 1.判断原有工作簿的sheet是否需要拆分: 2.如需拆分则创建新表: 3.将原sheet复制到新建的工作簿中. 效果如下: 代码执行前,有1个工作簿,需 ...

  6. [python教程入门学习]python学习笔记(CMD执行文件并传入参数)

    本文章向大家介绍python学习笔记(CMD执行文件并传入参数),主要包括python学习笔记(CMD执行文件并传入参数)使用实例.应用技巧.基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋 ...

  7. Redis学习笔记~Redis在windows环境下的安装

    Redis是一个key-value的存储系统,它最大的特点就是可以将数据序列化到文件中. redis存储在服务器的内存或者文件中,它不是session,不是cookies,它只是个更安全,更稳定,更可 ...

  8. Unix原理与应用学习笔记----第六章 文件的基本属性2

    Unix原理与应用学习笔记----第六章 文件的基本属性2 改变文件权限命令:chmod 提示:文件或目录创建后,就被赋予一组默认的权限.所有的用户都有读,只有文件的所有者才有写. 相对权限设置 Ch ...

  9. Android学习笔记之AndroidManifest.xml文件解析(摘自皮狼的博客)

    Android学习笔记之AndroidManifest.xml文件解析 一.关于AndroidManifest.xml AndroidManifest.xml 是每个android程序中必须的文件.它 ...

  10. oracle的脚本日志,学习笔记:Oracle alert日志文件巡检脚本

    天萃荷净 分享一篇Oracle alert日志文件巡检脚本 每天都检查oracle日志,所以写了一个比较完善的shell,让其自动处理,在运行程序之前,需要在该脚本目录下新建tmp目录 #!/usr/ ...

最新文章

  1. python支付程序源码_python项目中实现支付宝网页支付
  2. Oracle 数据库连接失败问题
  3. python处理nc文件并输出_利用python如何处理nc数据详解
  4. 网络教育计算机 判断,北京师范大学网络教育计算机作业1、4、8
  5. Nature:全球掠夺性期刊已超过15500种
  6. MongoDB工具介绍
  7. mysql 不用缓存_mysql有自己的缓存机制,为什么还要用redis和memcac? 爱问知识人
  8. 中芯国际斥资570亿元上海建12英寸晶圆厂
  9. spring+hibernate+mysql mvc 配置
  10. 物理学基石 —— 麦克斯韦方程组
  11. iOS 对付内存泄漏,来说说我的调试方法
  12. python中tolist()命令
  13. PS 钢笔工具如何拖拽滑杆
  14. Pyecharts直角坐标系图:象形柱状图 PictorialBar
  15. gitlab-ci配置
  16. 二维码推广方法20种
  17. 实现Office的COM插件
  18. 卡西欧学生用计算机怎么玩,你真的会用计算器么?来玩转卡西欧计算器吧
  19. Oracle sqlplus 常用命令总结
  20. 立创eda学习笔记十:如何添加好友或组建团队

热门文章

  1. 嵌入式1553B总线开发板的应用
  2. 基于NIOS II的1553B总线开发板
  3. 如何在一周内摸清一个行业
  4. 竟然可以用python炒股?
  5. Facebook:Novi数字钱包“已经准备好进入市场”
  6. A股哪家上市公司年报更亮眼?
  7. 我们软件开发常用的协作工具
  8. 20200804自编译openwrtx86_64固件,源码来自L大
  9. element-ui+vue给登录界面创建一个走马灯幻灯片切换
  10. PHP利用ImageMagick实现PDF、PPT转图片