美文网首页
WPS 2019 合并文件夹下的EXCEL表格

WPS 2019 合并文件夹下的EXCEL表格

作者: 雨秋寒 | 来源:发表于2018-10-30 15:49 被阅读0次

合并excel表格。

最近朋友提出来了一个问题怎么快速合并一个文件夹内的excel表格数据,本着程序员 发现问题解决问题的原则,去查询了一下相关资料, 原来Windows office中的excel有代码编辑的功能,使用的是VB语言,之前有过接触可是都忘记了。然后找到如下代码块, 先看效果。

QQ截图20181030160154.png QQ截图20181030153814.png

合并前表1


QQ截图20181030153831.png

合并前表2


QQ截图20181030154629.png
合并后数据表

代码如下:

Sub 合并当前目录下所有工作簿的全部工作表()
Dim MyPath, MyName, AWbName  '定义变量,但未指定变量类型,这样一般是不规范的
Dim Wb As Workbook, WbN As String  '定义变量wb为工作簿类型,wbn为字符型
Dim G As Long  '定义G为长整型
Dim Num, ini As Long  '定义num,并定义和声明ini为长整型(注意,num类型未定)
Application.ScreenUpdating = False  '关闭屏幕刷新
MyPath = ActiveWorkbook.Path '将当前工作簿的路径赋值给mypath
MyName = Dir(MyPath & "\" & "*.xls")  '将活动工作簿的名字加上.xls后赋值给myname
AWbName = ActiveWorkbook.Name '将激活工作簿的文件名赋值给awbname
Num = 0
ini = 0
Do While MyName <> ""  '运行下面的do while循环,直到myname的值为空。
If MyName <> AWbName Then  '如果myname与awbname的值不同,则运行下一个end if前的语句
Set Wb = Workbooks.Open(MyPath & "\" & MyName) '打开mypath路径下名字为myname变量值的工作簿,并将其赋给wb
Num = Num + 1 '对num累加
With Workbooks(1).ActiveSheet  '对已打开的所有工作簿中的第一个工作簿中的被激活的工作表运用with语句
If ini = 0 Then
Wb.Sheets(1).Range(Wb.Sheets(1).Cells(1, 1), Wb.Sheets(1).Cells(1, Wb.Sheets(1).UsedRange.Columns.Count)).Copy .Cells(1, 1)  '将wb工作簿中第一个工作表的第一行有应用痕迹的单元格内容复制到Workbooks(1).ActiveSheet的相同位置
Wb.Sheets(1).Range(Wb.Sheets(1).Cells(2, 1), Wb.Sheets(1).Cells(2, Wb.Sheets(1).UsedRange.Columns.Count)).Copy .Cells(2, 1)  '将wb工作簿中第一个工作表的第二行有应用痕迹的单元格内容复制到Workbooks(1).ActiveSheet的相同位置
Wb.Sheets(1).Range(Wb.Sheets(1).Cells(3, 1), Wb.Sheets(1).Cells(3, Wb.Sheets(1).UsedRange.Columns.Count)).Copy .Cells(3, 1)  '将wb工作簿中第一个工作表的第三行有应用痕迹的单元格内容复制到Workbooks(1).ActiveSheet的相同位置
Wb.Sheets(1).Range(Wb.Sheets(1).Cells(4, 1), Wb.Sheets(1).Cells(4, Wb.Sheets(1).UsedRange.Columns.Count)).Copy .Cells(4, 1)  '将wb工作簿中第一个工作表的第四行有应用痕迹的单元格内容复制到Workbooks(1).ActiveSheet的相同位置
ini = 1
End If
For G = 1 To Sheets.Count '在Workbooks(1).ActiveSheet的所有sheet中循环。
Wb.Sheets(G).Range(Wb.Sheets(G).Cells(5, 1), Wb.Sheets(G).Cells(Wb.Sheets(G).UsedRange.Rows.Count, Wb.Sheets(G).UsedRange.Columns.Count)).Copy .Cells(.Range("A65536").End(xlUp).Row + 1, 1)  'Wb.Sheets(G).Range(Wb.Sheets(G).Cells(5, 1) 第一个参数表示从第几行开始复制 将WB中的A2到最后一行最后一列的非空单元格的内容复制到Workbooks(1).ActiveSheet中,每次从Workbooks(1).ActiveSheet的最后一个非空行开始粘贴
Next
WbN = WbN & Chr(13) & Wb.Name '将wbn的值加上空格和wb的名称后赋值给wbn
Wb.Close False  '将wb关闭
End With
End If
MyName = Dir
Loop
Range("A1").Select '选中当前工作簿的第一个单元格
Application.ScreenUpdating = True  '开启屏幕刷新
MsgBox "共合并了" & Num & "个工作薄下的全部工作表。如下:" & Chr(13) & WbN, vbInformation, "提示" '给出最后提示
End Sub

结束

注意:wps2016版本不支持代码查看功能,Windows office 的excel自带代码查看功能,本文章使用的是WPS 2019(推荐使用)

QQ截图20181030155922.png

相关文章

  • WPS 2019 合并文件夹下的EXCEL表格

    合并excel表格。 最近朋友提出来了一个问题怎么快速合并一个文件夹内的excel表格数据,本着程序员 发现问题解...

  • excel表格合并-js

    office EXCEL文档有合并表格功能,WPS基础功能免费,但合并表格要充SSSSSS VIP我又没有offi...

  • 多个Excel表合并成一个表

    1、新建一文件夹2、把需要合并的Excel文件放入当前文件夹下3、在当前文件夹下新建一个Excel表4、打开文件 ...

  • Excel_快捷键

    WPS 23、【.txt文本文件转Excel】新建--->空白表格--->数据--->导入数据--->确定--->...

  • excel表格技巧

    扫描某文件夹下目录,输出excel表格。 dir D:\Singer /b > d:\temp.xls

  • 合并多个excel文件

    代码用途:合并同一个文件夹下所有EXCEL文件注:可以通过修改FileFilter:="Microsoft Exc...

  • 轻松搞定多个Excel表格的纵向拼接合并

    上一篇,我们分享了Excel表格的横向拼接合并, 这一篇,我们来分享Excel表格的纵向拼接合并。 Excel表格...

  • PowerQuery合并多个csv文件

    知道怎么合并同一个文件夹下的多个Excel文件,其代码是: 【注意:我发现将Data表展开后,如果原始Excel中...

  • Python-121 先对两个excel合并,删除trim空格,

    1. 合并指定的两个excel: 2.进行VLOOKUP: 0)将所有excel文件的文件名提取到指定表格中; 这...

  • EXCEL多文件合并

    1、利用VBA可以通过更改excel代码来合并多个文件。 详细步骤: 1)、新建一个文件夹。2)、将要合并的表格放...

网友评论

      本文标题:WPS 2019 合并文件夹下的EXCEL表格

      本文链接:https://www.haomeiwen.com/subject/nwpgtqtx.html