Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >ExcelVBA汇总多工作簿中指定工作表到新工作簿

ExcelVBA汇总多工作簿中指定工作表到新工作簿

作者头像
哆哆Excel
发布于 2023-09-09 02:49:41
发布于 2023-09-09 02:49:41
47500
代码可运行
举报
文章被收录于专栏:哆哆Excel哆哆Excel
运行总次数:0
代码可运行

ExcelVBA汇总多工作簿中指定工作表到新工作簿

=====start====

1.VBA汇总文件夹中的多文件的工作表中不同单元格区域到总表

2.Power Query-汇总文件夹中多工作簿多工作表到一个文件

=====end====

【问题】

老板指示,请2022年12个月的xx补贴表汇总表汇总在一起上交

【思路】

【解决】一个一个打开复制,格式会散,要数值化,重新调整格式。数量不多还可以,有没有快一点的方法呢?如果是100个文件,汇总他们其中的“汇总表”那怎么办呢【方法】先取得一个文件的路径再一个一个文件打开,复制工作表,格式就不变,工作表要重新命名,用文件名来命名,但是汇总表通常里面有公式的,还要数值化

【代码】

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Sub yhd_ExcelVBA汇总多工作簿中指定工作表到新工作簿()
    Dim strPath As String, myshtName As String, fileName As String, Fso As Object
    Dim wb As Workbook, wbopen As Workbook, wsNew As Worksheet, sht As Worksheet
    Set Fso = CreateObject("Scripting.FileSystemObject")
    strPath = ThisWorkbook.Path
    ChDrive strPath
    ChDir strPath
    fileToOpen = Application.GetOpenFilename("Excel Files (*.xls*), *.xls*", , "打开文件", , True)
    If TypeName(fileToOpen) = "Boolean" Then MsgBox "你选择了“取消”,将要退出程序": Exit Sub
    myshtName = Application.InputBox(prompt:="输入工作表名称", Title:="请输入", Default:="汇总", Type:=2)
    '定义变量
    disAppSet (False)
    '设置工作簿
    Set wb = ThisWorkbook
    '设置要复制的工作表
    For Each ff In fileToOpen
        '取文件名,用于工作表命名
        fileName = Fso.GetBaseName(ff)
        Set wbopen = Workbooks.Open(ff)
        With wbopen
            For Each sht In .Worksheets
                If InStr(sht.Name, myshtName) Then
                    sht.Copy after:=wb.Worksheets(wb.Worksheets.Count)
                    Set wsNew = wb.Worksheets(wb.Worksheets.Count)
                    wsNew.UsedRange.Value = wsNew.UsedRange.Value
                    wsNew.Name = fileName
                End If
            Next
            .Close False
        End With
    Next
    disAppSet (True)
End Sub
    '用法:disAppSet(true)开disAppSet(true)关
Sub disAppSet(flag As Boolean)
    With Application
        .ScreenUpdating = flag
        .DisplayAlerts = flag
        .AskToUpdateLinks = flag
        If flag Then
            .Calculation = xlCalculationAutomatic
        Else
            .Calculation = xlCalculationManual
        End If
    End With
End Sub
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-05-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 哆哆Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
ExcelVBA拆分之一簿一表_to_一簿多表使用演示
哆哆Excel
2023/09/09
2620
ExcelVBA汇总-多簿一表_to_一簿一表
哆哆Excel
2023/09/09
3020
ExcelVBA汇总-多簿一表_to_一簿一表
ExcelVBA拆分之一簿一表_to_一簿多表
哆哆Excel
2023/09/09
2480
ExcelVBA拆分之一簿一表_to_一簿多表
ExcelVBA汇总文件夹中的所有文件指定工作表到一个文件中并进行求和
【问题】:有一个格式固定的表格,我们下发给下面的单位做,上交上来有很多个文件,想要做的是汇总下面各学校交上来的表格并求和
哆哆Excel
2022/10/25
2.3K0
ExcelVBA汇总文件夹中的所有文件指定工作表到一个文件中并进行求和
ExcelVBA一键汇总文件夹中多Excel简历信息到一个Excel文件中
yhd-ExcelVBA一键汇总文件夹中多Excel简历信息到一个Excel文件中
哆哆Excel
2022/10/25
4330
ExcelVBA一键汇总文件夹中多Excel简历信息到一个Excel文件中
ExcelVBA条件查找多文件并由整行复制到模板再存为新工作簿
【解决问题】在工作中我常要做的事:在几个文件中,查找某人的数据,并复制出来,到一个新的文件中。
哆哆Excel
2022/10/31
1K0
ExcelVBA拆分1.一簿多表_to_多簿一表
哆哆Excel
2023/09/09
2800
ExcelVBA拆分1.一簿多表_to_多簿一表
ExcelVBA一键汇总多文件的指定工作表的到一个文件
【问题】下发给下面各单位的表格收集信息资料,上交上来后有很多个文件,文件的内容格式是一样(我下发时定的格式),我想把这些资料汇总在一起,
哆哆Excel
2022/10/25
1K0
ExcelVBA一键汇总多文件的指定工作表的到一个文件
ExcelVBA筛选法按分类条件拆分一个工作表为多个工作簿
对上次的文章进行优化 ==========代码如下===== Sub 筛选拆分() Dim d As Object, sht As Worksheet, arr, brr, r, kr, i&, j&, k&, x& Dim Rng As Range, Rg As Range, tRow&, tCol& Dim wb As Object, mysht As Worksheet Set d = CreateObject("scripting.dictionary") 'se
哆哆Excel
2022/10/31
3.6K1
​Pandas 拆分总表为多文件,一个文件有多个工作表
问题:按单位拆分,一个单位一个文件,一个文件中有类别中“在编”“试用”“镇聘”三个工作表,分别存入相关的数据
哆哆Excel
2022/10/25
1.1K0
​Pandas 拆分总表为多文件,一个文件有多个工作表
ExecelVBA批量打印文件夹有文件并设置打印为一页数
在工作中我们要打印文件夹中所有文件,如果每个文件打开--输入打印份数--打印--关闭,再来打开--输入打印份数--打印--关闭,如果文件少还可以, 如果文件多你会累S,
哆哆Excel
2022/10/31
1.3K0
3分钟写个VBA:Excel工作簿所有子表数据一键汇总
今天同事问我,他要汇总一个工作簿里面十几张子表里面的数据到同工作簿的汇总表里面,怎么操作比较快?然后我就想到了VBA,3分钟给他写(录)了一个宏,一键完成所有数据汇总。
朱小五
2021/12/09
3.9K0
3分钟写个VBA:Excel工作簿所有子表数据一键汇总
ExcelVBA从工作簿中查询多个姓名并复制出整行数据
工作中用的代码 Sub ExcelVBA从工作簿中查询多个姓名并复制出整行数据() Dim outFile As String, inFile As String Dim outWb As Workbook, mysht As Worksheet, tempsht As Worksheet, t_arr(1 To 30) Dim SearchRange As Range Dim LastRow As Integer, arr, FindStr As String, i
哆哆Excel
2022/10/31
1.7K0
ExcelVBA拆分_一簿一表_to_多簿一表
哆哆Excel
2023/09/09
2600
ExcelVBA拆分_一簿一表_to_多簿一表
合并多个工作簿
很多时候,我们都有将多个工作簿合并成一个工作簿的需求。当然,根据需求的不同,合并工作簿的代码会有差异。在完美Excel中给出过多个合并工作簿的示例,有兴趣的朋友可以查阅历史文章。
fanjy
2024/02/21
2020
合并多个工作簿
VBA对象变量
大家好,前面介绍了vba中两个主要的对象,单元格range对象和工作表worksheet对象,以及它们的属性和方法。
无言之月
2019/10/13
2K0
Worksheet工作表对象基础
大家好,前面介绍了最常用的单元格Range对象,本节开始介绍Worksheet工作表对象的相关内容(基础内容已有涉及),后续会再分别介绍它的属性、方法以及事件等内容。
无言之月
2019/10/13
2.6K0
ExcelVBA 批量生成工作表并随机生成成绩表
'有时候我的制作教程的过程中需要一些随机的数据,如成绩表,有时也需要很多表,不想一个一个建立工作表,所以为了方便
哆哆Excel
2022/10/25
8290
ExcelVBA 批量生成工作表并随机生成成绩表
Python-Excel-openpyxl-05-新建工作簿/复制及新建工作表
系统:Windows 7 语言版本:Anaconda3-4.3.0.1-Windows-x86_64 编辑器:pycharm-community-2016.3.2 openpyxl:2.6.2
zishendianxia
2019/10/23
5.6K0
Python-Excel-openpyxl-05-新建工作簿/复制及新建工作表
ExcelVBA字典用法之按列拆分工作表
Set dic= CreateObject("Scripting.Dictionary")
哆哆Excel
2022/10/25
1.2K0
ExcelVBA字典用法之按列拆分工作表
推荐阅读
相关推荐
ExcelVBA拆分之一簿一表_to_一簿多表使用演示
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验