多张excel表格合并成一张表格

汇总多个部门反馈的信息,表格一样,表格内容不一样。不想要复制黏贴。
excel2010版,无法升级办公软件,对外部软件不支持,内网控制。
想要使用excel中自带vba,有更好也可以。
只需要一点击,就直接汇总好所有表格,表格也不多,就十几张。

第一步:光盘刻录一下python运行环境和集成开发环境拷进内网。如果是WIN7操作系统,推荐使用“Anaconda3-2021.05-python3.8-Windows-x86_64”(这个python发行版包含了常见的百多个数据分析、爬虫等库比较方便)、“pycharm-community-2021.3.2”(这个社区版免费又强大),网址一个是https://www.anaconda.com/ 一个是https://www.jetbrains.com/pycharm/
第二步:然后使用python的pandas库来操作Excel,简单的几行代码就可以实现,当然要学习一下,之后还可以用python使你的大量其它工作实现自动化。
补充:看你问这个问题,大概率不想学习python的话,将表格的样式图片发一部分出来,或者形容详细一点,可以帮你写出代码来,或者做一个简单的拼接Excel的软件给你。

首先配置python环境,安装一个python环境后(网上一搜一大把),安装xlrd和xlwt这两个库。新建一个文件夹,随便命名,比如test,然后进入test文件夹,新建一个copy.py程序,写入下面内容,然后将下面代码写入保存:

import os
import xlrd
import xlwt

# 需求:拷贝excel中的内容到另外一个excel中
files = os.listdir('excel_files')
for file in files:
    xlsx = xlrd.open_workbook(file) # 打开excel文件
    sheets = len(xlsx.sheets()) # 获取sheet个数

    new_workbook = xlwt.Workbook() # 准备写入

    for sheet in range(sheets):
        table = xlsx.sheet_by_index(sheet)
        rows = table.nrows
        cols = table.ncols
        worksheet = new_workbook.add_sheet("sheet"+str(sheet))
        for i in range(0,rows):
            for j in range(0, cols):
                worksheet.write(i, j ,table.cell_value(i, j))
    new_workbook.save("copy.xlx")

再新建一个存放 excel_files的文件夹,将你的所有的excel文件放入该文件夹下,执行程序,就会在text文件夹下生成一个copy.xlx的文件。
如果不行,你可以将你的文件给我,我帮你搞一下!
如果有帮助,请采纳,多洗!

不管是用软件编程,还是用excel自身的链接功能都可以实现,问题是新的表格只有打开了才会自动更新,而且原来的多张表格必须存在,要不然都会出错。

给你个VBA的方法,细节你自己调调就可以了。

前提:
1.把你要合并的所有excel文件,放在一个目录下,比如d:\tmp\111
2.在excel里面加个按钮,按钮执行,下面这段代码
注意,要合并的文件,请不要手动打开,vba里面有打开文件的命令,如果要被合并的文件已经被打开,会报错

Sub mergeSheets()

    Dim path, fso, file, files, i, cur, resultWb
    path = Range("D5").Value
    

    Set fso = CreateObject("Scripting.FileSystemObject")
    Set files = fso.GetFolder(path).files

    cur = 1
    
    Set resultWb = ActiveWorkbook
    
    
    For Each file In files


        If InStr(file.Name, "mergeTools") > 0 Then
        
            'do nothing
        
        Else
            Dim wb As Workbook
            
            
            Set wb = Workbooks.Open(file)
            
               For i = 2 To 10000
                   
                   If wb.Worksheets("sheet1").Range("A" & i).Value = "" Then
                       Exit For
                   End If
                   
                   wb.Worksheets("sheet1").Range("A" & i).EntireRow.Copy
                   
                   resultWb.Worksheets("Result").Range("A" & cur).EntireRow.PasteSpecial (xlPasteAll)
                   
                   cur = cur + 1
                   
                   Application.CutCopyMode = False
               
               Next i
                
    
            Call wb.Close(SaveChanges:=False)
            
        End If

    Next file

End Sub


测试用程序可以从下面的链接处下载:


提取码:xv9d

可参考如下链接:
如何将多个表格中数据汇总到一张表中https://baijiahao.baidu.com/s?id=1659244137239276990

img


看需求功能,此功能:读指定列数据,把文件名的日期提取,在表格新建列,把日期插入,删除重复数据等
有需要的话可以说需求,不用安装python,我直接打包发给你

网上下载小工具就解决了

多个文件vba操作起来很麻烦,只适合单个文件。你把EXcel发给我,我可以给你写个小工具。