如何把excel的多个工作薄合并到一个工作薄?
发布网友
发布时间:2022-03-03 14:02
我来回答
共3个回答
热心网友
时间:2022-03-03 15:32
用VBA可以实现(样本文件见附件)
代码如下:
Sub 文件合并()
On Error Resume Next
Dim wb As Workbook, sh As Worksheet
Dim fn As String, pt As String, t
t = Timer
'------------------------检测是否打开了多个excel文件-------------------
If Workbooks.Count > 1 Then
MsgBox "请关闭其余的工作簿!"
Exit Sub
End If
'------------------------选择要合并的工作簿所在文件夹,获取路径---------
With Application.FileDialog(msoFileDialogFolderPicker)
.Show
.AllowMultiSelect = False
If .SelectedItems.Count = 0 Then
MsgBox "没有选择任何文件夹!"
Exit Sub
Else
pt = .SelectedItems(1)
End If
End With
'-------------------------遍历文件夹中的所有Excel文件,并进行处理--------
fn = Dir(pt & "\*.xls") '若你的文档是2007或更新版本,则将*.xls改成*.xlsx
Do While fn <> ""
If fn <> ThisWorkbook.Name Then
k = k + 1
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set wb = Workbooks.Open(pt & "\" & fn, , True)
Set sh = ThisWorkbook.Worksheets.Add(after:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count))
wb.Worksheets(1).Rows.Copy sh.Rows
sh.Name = "工作簿" & Left(fn, Len(fn) - IIf(Right(fn, 1) = "x", 5, 4))
wb.Close
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End If
fn = Dir
Loop
MsgBox "处理结束。共处理" & k & "个文件,耗时" & Timer - t & "秒"
ThisWorkbook.Save
End Sub
热心网友
时间:2022-03-03 16:50
将相关活页簿打开
在总表上某一格按=再选到所要工作表格位按回车
用函数亦同上
但用indirect ()时须在所有活页都开启时才有效追问我是要把多个sheet,放到一个excel文件中形成多个sheet。
热心网友
时间:2022-03-03 18:24
那就用程序运行下