excel表格,怎样将多个设计好的表格合并到一个工作表,要求格式不要变化

如题所述

新建一个工作表,命名后保存到和与合并的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 = ActiveWorkbook.Name
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.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

宏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:一个工作薄中多个工作表合并代码

在EXCEL中,到合并表里打开宏,将下列代码进行粘贴并保存。然后返回你需要合并的工作表中。或按 alt + f11,双击工程资源管理器里面的合并表的SHEET,在右侧的代码区粘贴如下代码。运行此宏,就合并了。

Sub 合并sheets()
n = 12 '源表个数,根据需要修改!
nstart = 9 '每个单表数据的起始行数,根据需要修改!
k = nstart '目标表的行标
For i = 1 To n
irow = nstart '行标
While Sheets(i).Cells(irow + 1, 1) <> "" '后面个1以第1列数据为结束标示,确定源表的行数,根据需要修改!
irow = irow + 1
Wend
Sheets(i).Rows(nstart & ":" & irow).Copy '复制源数据行
Sheets(n + 1).Activate
Sheets(n + 1).Cells(k, 1).Select
ActiveSheet.Paste '粘贴数据
k = k + irow - nstart + 1
Next i
End Sub
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-07-12
如果说是移到一个工作薄的话就简单了:点住下面页签,右键,移动到指定位置就行了.
如果都到一个表,就COPY吧,格式一定会变的
第2个回答  2011-07-12
同时打开目标工作表和源工作表,
右键点下面的卷标签,
然后选择移动/复制,
下拉列表里面选择目标工作表,
点确认。
相似回答