如何将若干个有统一表头xls(定义名称:数据表:1.xls\2.xls\3.xls)合并成一个xls(定义名称:数据合并:合并.xlsx)。
2019年10月18日
windows10上尝试通过vba代码实现:
流程1:
在网上查找相关代码:‘代码表’:1https://www.cnblogs.com/wangcan/p/3892212.html
代码表:1
Sub 合并当前目录下所有工作簿的全部工作表() Dim MyPath, MyName, AWbName Dim Wb As Workbook, WbN As String Dim G As Long Dim Num As Long Dim BOX As String flag = 0 Application.ScreenUpdating = False MyPath = ActiveWorkbook.Path MyName = Dir(MyPath & "\" & "*.xls") AWbName = ActiveWorkbook.Name Num = 0 Do While MyName <> "" If MyName <> AWbName Then Set Wb = Workbooks.Open(MyPath & "\" & MyName) Num = Num + 1 With Workbooks(1).ActiveSheet For G = 1 To Sheets.Count If flag = 0 Then Wb.Sheets(G).UsedRange.Copy .Cells(.Range("A65536").End(xlUp).Row , 1) flag = 1 Else Wb.Sheets(G).Range("a2", Wb.Sheets(G).Cells.SpecialCells(xlCellTypeLastCell)).Copy .Cells(.Range("A65536").End(xlUp).Row + 1, 1) End If Next WbN = WbN & Chr(13) & Wb.Name Wb.Close False End With End If MyName = Dir Loop Range("A1").Select Application.ScreenUpdating = True MsgBox "共合并了" & Num & "个工作薄下的全部工作表。如下:" & Chr(13) & WbN, vbInformation, "提示" End Sub
操作流程:
- 将要合并的数据表放在同一文件夹下,复制过来就好
- 在这个目录下创建一个“合并.xlsx”
- 双击打开“合并.xlsx”
- 同时按 ALT + F11
- 出现vba编辑界面,在界面中输入代码表1的内容。
- 运行
操作结果:
1、合并后表格的1:1,复制成功。
2、合并后表格的2:2,复制了N1:U1下数据表3的内容,其他数据未能成功复制。
流程2:
通过录制宏理解‘代码表1’的代码:
保留表头顺序将数据表:1.xls\2.xls\3.xls表头下的数据复制到,合并xlsx。
得到代码:代码表2。
代码表2
Sub 宏1() ' ' 宏1 宏 ' ' Windows("1.xls").Activate Rows("1:5").Select Range("F1").Activate Selection.Copy Windows("合并.xlsx").Activate ActiveSheet.Paste Windows("2.xls").Activate Rows("2:4").Select Range("I4").Activate Application.CutCopyMode = False Selection.Copy Application.CutCopyMode = False Selection.Copy Windows("合并.xlsx").Activate Range("A6").Select ActiveSheet.Paste Windows("3.xls").Activate Rows("2:2").Select Range("L2").Activate Application.CutCopyMode = False Selection.Copy Windows("合并.xlsx").Activate Range("A9").Select ActiveSheet.Paste End Sub