Excel多表格合并公式
- 格式:docx
- 大小:18.39 KB
- 文档页数:5
用宏实现:
新建一个工作表,命名后保存到和与合并的N个文件同一个文件文件夹,按 alt + f11,双击工程资源管理器里面的sheet1(sheet1),在右侧的代码区粘贴如下代码。运行。等候一会就OK了。
宏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
Application.ScreenUpdating = False
MyPath = ActiveWorkbook.Path
MyName = Dir(MyPath & "\" & "*.xls")
AWbName =
Num = 0
Do While MyName <> ""
If MyName <> AWbName Then
Set Wb = Workbooks.Open(MyPath & "\" & MyName)
Num = Num + 1
With Workbooks(1).ActiveSheet
.Cells(.Range("A65536").End(xlUp).Row + 2, 1) = Left(MyName, Len(MyName) - 4)
For G = 1 To Sheets.Count
Wb.Sheets(G).UsedRange.Copy .Cells(.Range("A65536").End(xlUp).Row + 1, 1)
Next
WbN = WbN & Chr(13) &
Wb.Close False
End With
End If
MyName = Dir
Loop
Range("A1").Select
Application.ScreenUpdating = True
MsgBox "共合并了" & Num & "个工作薄下的全部工作表。如下:" & Chr(13) & WbN, vbInformation, "提示"
End Sub
宏2:多个文件表合到一个文件表的多个SHEET中
Sub CombineWorkbooks()
Dim FilesToOpen, ft
Dim x As Integer
Application.ScreenUpdating = False
On Error GoTo errhandler
FilesToOpen = Application.GetOpenFilename _
(FileFilter:="Micrsofe Excel文件(*.xls), *.xls", _
MultiSelect:=True, Title:="要合并的文件")
If TypeName(FilesToOpen) = "boolean" Then
MsgBox "没有选定文件"
'GoTo errhandler
End If
x = 1
While x <= UBound(FilesToOpen)
Set wk = Workbooks.Open(Filename:=FilesToOpen(x))
wk.Sheets().Move after:=ThisWorkbook.Sheets _
(ThisWorkbook.Sheets.Count)
x = x + 1
Wend
MsgBox "合并成功完成!"
errhandler:
'MsgBox Err.Description
'Resume errhandler
End Sub
如何合并格式相同的Excel表格
青岛经济技术开发区审计局靳大陆
在日常审计中,为了能利用现场审计实施系统(以下简称“AO系统”)对数据进行分析,首先需要将采集的原始数据导入到AO系统中。然而,审计中采集的数据经常会是大量格式相同的Excel表格,如果分别将这些表格导入AO系统,则需要耗费大量时间进行重复的导入操作,降低了审计效率。
笔者通过计算机审计中级培训以及工余时间自学的计算机相关技术知识,创新思维方式,巧妙利用Excel的VBA 功能,编写程序,实现将大量格式相同的Excel表格合并到
一个表格中,然后再导入AO系统,进行下一步数据分析。具体合并步骤如下:
1.将所有格式相同的Excel表格保存到一个文件夹内;
2.在文件夹内新建一个Excel工作表,命名为“汇总表”;
3.打开汇总表,按“Alt + F11”打开VBA开发环境,双击工程资源管理器里面的sheet1(sheet1),在右侧的代码区编写如下代码:
Sub 合并当前目录下所有工作簿的全部工作表()
Dim MyPath, MyName, AWbName
Dim Wb As Workbook, WbN As String
Dim G As Long
Dim Num, ini As Long
Application.ScreenUpdating = False
MyPath = ActiveWorkbook.Path
MyName = Dir(MyPath & "\" & "*.xls")
AWbName =
Num = 0
ini = 0
Do While MyName <> ""
If MyName <> AWbName Then
Set Wb = Workbooks.Open(MyPath & "\" & MyName)