精华内容
下载资源
问答
  • 2022-04-17 20:01:17

    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为当前工作簿中表的个数
        
        '删除新建的工作簿除“汇总表”外的其他sheet
        For Each sht In ThisWorkbook.Worksheets
            If sht.Name <> "汇总表" Then
                Application.DisplayAlerts = False
                sht.Delete
                Application.DisplayAlerts = True
            End If
        Next 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 & "\" & file
            Set 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 + 1
            file = Dir
        Loop
    End Sub
    
    更多相关内容
  • 工作簿多个工作表,全部数据汇总工作簿多个工作表,每个的格式,标题相同)
  • 可以通过该工作簿的代码修改成自己想要的工作簿,方便以后每次汇总多个工作簿
  • 多工作簿指定工作表,全部数据汇总
  • 多个Excel工作簿汇总到一个工作表,可以使用VBA,也可以使用power query。
  • VBA代码,可以合并选定的多个Excel文件中的所有工作表到一个文件中(多个工作表)
  • (注:PowerQuery是微软推出的一个功能强大的数据抓取工具,在Excel2013中需要安装官方插件才能使用,在Excel2016及以后版本中已经内置)例:现有如下N个工作表,每个工作表位于独立的工作薄内,每个工作表数据都由...

    4166cd0c4df68c1a3dedb920cffb3901.png

    精进Excel

    如果任意点开三篇,没有你想要的知识,算我耍流氓!

    5c9a3dfff7ec6655bf54a9e3377f98c9.gif  

    Excel多工作表合并可以采用PowerQuery来实现,不需要复杂的代码、不需要额外的插件!

    (注:PowerQuery是微软推出的一个功能强大的数据抓取工具,在Excel2013中需要安装官方插件才能使用,在Excel2016及以后版本中已经内置)

    例:现有如下N个工作表,每个工作表位于独立的工作薄内,每个工作表的数据都由月份、产品、数量三列组成,现需要所有数据合并至同一个工作薄的一个工作表中。

    32bf2f023588fecb33628a5611d6e222.png

    Step1:使用PowerQuery抓取文件信息

    首先将需要合并的多个Excel文件放到一个文件夹下。然后在其它位置新建并打开一个空白工作薄用于存储汇总好的数据,依次点击【数据】选项卡——新建查询——从文件——从文件夹。

    b71459629a9e712b1e3d66a23a6e9bb1.png

    在弹出的对话框中,“文件夹路径”选择需要合并的多个Excel文件所在的文件夹。

    e1ada99e2fcc4710facf4301157df7b1.png

    点击确定后就进入了PowerQuery界面,文件夹下的所有文件基本信息已经被提取至当前页面,包括文件名、后缀名、文件创建时间、文件完整路径等信息。

    cce97658cf41a2353cddfc57d66060a2.png

    Step2:使用PowerQuery汇总文件数据

    依次点击添加列——添加自定义列,并输入自定义列公式=Excel.Workbook([Content]),公式注意首字母要大写。

    ad16452680848beb342390def1dda4af.png

    将新添加的列扩展,仅选择“Data”。

    6bcfddcc299248f7b8bb8d0f6c6b0b30.png

    将得到的Custom.Data列再次扩展。

    68d43bb17e8eb9dd42c3e39e259235d0.png

    此时已经将多个文件的数据汇总完成。

    1b0cb48954b5c81d9461a29f0ce6bd40.png

    Step3:将Power Query中的数据上载到Excel工作界面

    选择“关闭并上载至”,将数据加载到Excel工作表界面。

    ae5eea9704b602377af48887ee944ba5.png

    删除多余标题行后,最终结果如下。

    12609df3ee348c5a3c46c9126b8d1b7d.png

    使用PowerQuery汇总数据的一大优点是它存储了一个数据自动汇总过程并建立了一个动态链接,后期如果需要更新数据,只要把新的文件放入文件夹内,并在汇总Excel内刷新查询,即可按照设定好的规则自动提取及汇总所有数据。

    23a6c18fa807f2d2d1f13746c3931e98.png

    59ca3bfe26ec85feb51932b21ba96a54.png

    c2a22e7d8e022e1e5e4aa59fd10a63a0.png

    展开全文
  • 在工作中,时常要遇到将许多个工作簿中的数据合并到一个工作表中,一个一个的复制粘贴吧,几个表或者十几个表还行,再了恐怕就太费时了,如果再多点比如有几十上百个表要合并,而且又催得急可能就不是加不加班的...

    在工作中,时常要遇到将许多个工作簿中的数据合并到一个工作表中,一个一个的复制粘贴吧,几个表或者十几个表还行,再多了恐怕就太费时了,如果再多点比如有几十上百个表要合并,而且又催得急可能就不是加不加班的问题了,而是会不会耽误工作的重大问题了,一旦耽误了工作其后果是可以想见的。

    今天在这里给大家分享一个快速合并多个工作簿中内容到一个工作表的方法,此方法必须有一个前提条件,这是这些工作簿中的工作表必须是同样的结构。

    5445bfeefd0d401c33ff7961748aeb78.png

    如上图所示,每一个表都具有:序号、学生姓名、性别、出生日期、民族、年级、班级、户口性质这些字段,同时顺序一致。

    首先,将所有需要合并的表以及最终结果表放在同一个文件夹中,如下图所示:

    f6357e96b0aba40e2a4ef64c2117f2f8.png

    打开最终需要的结果表,本例中就是“2019级在校生信息”表,点击“数据”菜单,点击“新建查询”,点击“从文件”,选择“从文件夹”,如下图所示:

    90c64c4b7cd660fc18b8e0c2303f5724.png

    点击“从文件夹”,在出现的界面中点击“浏览”,找到刚才建立的文件夹,如下图所示:

    2adc4aef040592d3faa1e259e4f88018.png

    点击“确定”,点击“确定”,然后出现如下图的结果。

    3799a56b55c150deeed127978c583bec.png

    在上图界面中点击“添加列”,点击“添加自定义列”,出现如下界面:

    1570cc33c65d3c928b5237c3d401b4b5.png

    然后在“自定义列公式”下面的框中输入如下公式:

    =Excel.Workbook([Content]),(注意公式中的首字母是大写的),然后点击确定,此时可以看到后面多了一列,列标为“Custom”的列。如下图所示:

    3cdbb2cf8a8cdf408ba69b064c737732.png

    在最后一列的筛选器中筛选,只选择”DATA”数据选项,将其他选项前面的勾都去掉,如下图:

    0645f407ee9a1abf780b2a44d880a8bd.png

    在上图界面中点出确定,这样原来的列标“Custom”就变成“Custom.data”,如下所示:

    59872439ce758483273c6109a66a8b1f.png

    继续对“Custom.data”右边按钮进行点击,在出现的界面中直接点击确定。

    ff46f1e6249fdee7d2ebf63a1e07ac3c.png

    点击确定后等待几秒钟,表格中所有的数据就显示出来了,如下图所示:

    de0af717a29afea863a1bc043c4c282f.png

    点击“文件”或“开始”,点击“关闭并上载”得到如下表格:

    7a31476c394d0f4ae88061cbce67b5b0.png

    上图表中从“序号”开始后面的数据就是我们需要的,删除“序号民”列前面的数据,得到最终汇总结果:

    de7c319c90a541e972449d210a0cacbc.png

    是不是超简单呢?书上得来终觉浅,绝知此事要躬行。喜欢的话,就跟着我的步骤操作一遍吧。

    展开全文
  • 例如:A列有10条数据汇总后是三员工,使用小工具可以将按照每员工拆分成单独的Excel文件 关键点: 1、小工具要与Excel文件放在同一文件夹下; 2、标题行唯一,不能跨行; 3、以某列为的数据为标准值进行...
  • 编辑:哈雷 |来源:巨盒创意 | 欢迎转发到朋友圈日常工作中,我们可能有这样的需求,我们的数据分别存放在N个工作簿里,我们需要把这些零散的数据都移动到一个工作簿里面,而且每张工作表分别存在!我们常用的方法是...

    c3312dd0007d6c4ebb0e57c4d7fc403c.gif

    编辑:哈雷  |  来源:巨盒创意  |  欢迎转发到朋友圈 6d5d68923d501d4cd71f2992e2be7413.gif

    日常工作中,我们可能有这样的需求,我们的数据分别存放在N个工作簿里,我们需要把这些零散的数据都移动到一个工作簿里面,而且每张工作表分别存在!

    我们常用的方法是,一个个打开工作簿,通过移动工作表的方式一个个移动过去,但是如果我们的数据量很大时,这样做是很麻烦的事情,下面给大家介绍一个十分简单的方法,几秒钟实现我们的目的!

    1、新建“工作表合并.xlsx”文件>>   选项>> 信任中心>> 点击“信任中心设置”按钮>> 宏设置>> 选中“启用所有宏”点击“确定”按钮。    // 要执行VB代码必须先启用宏设置。

    372a282de7073ec4c5fec22109371882.png

    261c8d66693ef39b99f4dcf16f3372ba.png

    2、右键单击任意一个工作表标签,在弹出的右键快捷菜单单击“查看代码”进入VBA编辑环境 >>“代码窗口”复制粘贴以下代码,按下F5快捷键执行这段代码或者在菜单中单击“运行子过程/用户窗体”命令。 

    Sub 合并工作薄()

    Dim FileOpen

    Dim X As Integer

    Application.ScreenUpdating = False

    FileOpen = Application.GetOpenFilename(FileFilter:="Microsoft Excel文件(*.xlsx),*.xlsx", MultiSelect:=True, Title:="2015")

    X = 1

    While X <= UBound(FileOpen)

    Workbooks.Open Filename:=FileOpen(X)

    Sheets().Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)

    X = X + 1

    Wend

    ExitHandler:

    Application.ScreenUpdating = True

    Exit Sub

    errhadler:

    MsgBox Err.Description

    End Sub

    1c2232e4e1ebd1309b16085adcc4db68.png

    3、选择要合并的工作表文件,点击“打开”,程序运行的工程中不要进行任何操作,等待宏运行完成。

    b9d2264cbf9195b965db1b325443b6b1.png

    4、运行完成后,工作薄中会出现所有要合并的工作薄中的工作表,如下图所示:

    4e006b895003ca5f8f775e0853341fa5.png

    关注巨盒创意微信公众号,免费学习更多精品教程,高效、便捷办公。

    58f7bba549ae84c757d9a0a943341f9a.gif

     End

    427969571d5a2b7c93e85549f4e92bd9.gif

    展开全文
  • VBA一键汇总多个工作簿-名称相同的工作表-的指定区域数据 日常工作,我们经常需要汇总相同格式的工作簿的某个工作表数据 如1月业绩、2月业绩。。。。12月业绩等 姓名 数量 数据22 22 数据23 23 ...
  • 自己学习VBA编程时,利用excel内VBA宏编写的简单命令,涉及一些基础的操作,亲测可用,初学者可以借鉴,也能利用其解决一些简单的办公问题。
  • Excel多个工作簿合成为一个工作表

    万次阅读 2020-08-21 14:02:20
    Excel多个工作簿合成为一个工作表 目录 前言 第一步:多张工作簿合并成一个“汇总工作簿”,操作如下: 第二步:把多张sheet表合并成一张sheet工作表,操作如下: 总结 前言 在工作中,我们会遇到这种情况,...
  • 在一些操作中,往往会需要将多个工作簿进行合并。一般的操作方法都是打开两个工作簿,然后选中需要移动的工作表,右键单击以后选择“移动或复制”。接下来在新的窗口里面进行设置就可以了。这种方法适合在移动数量较...
  • 在excel中,经常会遇到多个表格的数据需要汇总,但是有时候每个表格的顺序、项目不一定完全相同,比如下图中,动图一是五个不完全相同的工作表,如何将五个工作表数据汇总到一个工作表中(图二所示),并对这些数据...
  • 这是对EXCEL数据透视的应用,教程参考来自EXCEL HOME,这里附上我的全部练习过程和图片。本文中所用所有图片以及文字均为本人原创,但为尊重原作者,故还是打上了转载的标签。如需转载,还请标上本人昵称qk61508或...
  • 1.需求描述现在有三个工作表,如下:并且每个工作表中的内容如下:需要将这三个工作簿中的分数这一列合并到一起,最终实现效果如下图:2.实现代码# Author:Logan# Date:2020/6/2 9:58# IDE:PyCharm# version:Python ...
  • 将某一文件夹下所有工作簿中的张表单汇总到一个工作薄中的一张表单中 最终效果: 步骤流程: 完整代码: ========================================================================= 1、汇总当前...
  • 多个工作表合并说明: 1、需要将合并的工作移到同一个文件夹下; 2、只统计合并SHEET1工作表,数据从第二行开始汇总, 3、工作薄数量不要太多,
  • 今天教你一招,只要学会使用这三个Excel函数公式,就可以合并任意多个工作表。【案例】在下图所示的工作簿里,有行数可能存在差别、但格式却相同的四个表格,现在如果让你把这4个表合并到一个“汇总”表中,你会怎么...
  • 本程序代码的功能是将一个EXCEL工作簿拆成多个工作表
  • 多个工作表数据汇总

    2021-09-21 20:59:11
    今天跟大家分享一下多个工作表数据汇总 1.打开演示文件,如下图要求快速汇总出各个工作表数据之和。 2.如下图选中数据单元格区域 3.然后我们点击下图选项 4.点击【汇总拆分】-【汇总多...
  • 1.如下图五个工作表分别为为1-5号这五天单位员工产品完成量,现在我们想要快速统计出每位员工这5天完成量总和。 ​ 2.选择除日期列以外的所有单元格区域 3.点击下图选项(Excel工具箱,百度即可...
  • 那其实也可以把多个工作表合并为一个。 继续之前的例子,我们把汇总表删除 如下 把表 1,2,3 合并到sheet5中 合并代码如下: Sub 合并当前工作簿下的所有工作表() Application.ScreenUpdating = Fals...
  • 利用Excel进行数据处理分析时,常需要对大量独立的具有相同表结构的原始工作薄中的数据进行汇总合并到一个工作薄的指定工作表中。通过VBA编程调用Excel对象在不打开源工作薄的情况下,将指定文件夹中所有工作薄中的...
  • 需要将要合并的工作簿放在同一文件夹内,功能如下: 1、多工作表数据汇总 2、多工作簿数据汇总 3、工作薄汇总生成新工作表
  • file_path = r'D:\python_file\销售' file_list = os.listdir(file_path) # 列出文件夹下所有文件和子文件夹的名称 for i in file_list: if os.path.splitext(i)[1] == '.xlsx': # 判断文件是否
  • 2、根据需要选择【函数】,单击【引用位置】右侧的箭头,选择需要合并计算的第一个工作表中的数据区域,单击箭头返回并【添加】,并以此添加需要计算的所有工作表区域。3、勾选【标签位置】的【首行】和【最左列】并...
  • VBA学习笔记6:将多个工作表中满足条件的数据汇总到同一个工作表
  • VBA - Excel多工作簿合并计算

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 117,776
精华内容 47,110
关键字:

多工作簿多个工作表数据汇总