乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > 求一个<em>VBA</em>,一个文件夹中多个EXCEL工作簿合并成一个工作...-vba e

求一个<em>VBA</em>,一个文件夹中多个EXCEL工作簿合并成一个工作...-vba e

作者:乔山办公网日期:

返回目录:excel表格制作


说千字,不如一附件

 

这里有有我以前做的合并文件夹下所有工作簿(包含子目录)到当前工作表的一个程序

楼主可以参考学习下.

 

也可以把问题作为内容(邮件主题一定要zd包含“Form”,本人以此为依据辨别非垃圾邮件,以免误删)、excel文件(去掉机密内容)作为附件发来看下  三零三三一三六 二七



VBA代码如下:

Sub s()

pth = "D:\My Documents\" '在这里输入文件所在文件夹的完整路径

    fn = Dir(pth & "*.xls")

Set newbk = Workbooks.Add

Set sht = newbk.Sheets(1)

k = 1

Application.DisplayAlerts = False

    Do While fn <> ""

        Set wb = Workbooks.Open(pth & fn)

For i = 1 To wb.Sheets.Count

            sht.Cells(k, 1) = fn & ":" & wb.Sheets(i).Name

k = k + 1

wb.Sheets(i).UsedRange.Copy

sht.Cells(k, 1).PasteSpecial xlPasteValuesAndNumberFormats

k = sht.UsedRange.Rows.Count + 1

Next

wb.Close False

fn = Dir

Loop

    newbk.SaveAs pth & "new.xlsx" '在这里设定合并文件的文件名e799bee5baa6e79fa5e98193e4b893e5b19e363

newbk.Close False

Application.DisplayAlerts = True

End Sub

扩展资料:

也可以用如下代码实现:

Sub a()

For Each myfile In CreateObject("scripting.FileSystemObject").GetFolder(ThisWorkbook.Path).Files

If myfile.Name Like "*.xl*" And Not myfile.Name Like "*" & ThisWorkbook.Name & "*" Then

With Workbooks.Open(myfile)

sheetcount = .Sheets.Count

For i = 1 To sheetcount

.Sheets(i).Copy After:=ThisWorkbook.Sheets(1)

Next

.Close False

End With

End If

Next

ThisWorkbook.Save

End Sub

将所有的excel放在同一个工作簿即可实现。


以WPS 2019版本为例:

关于WPS表格合并多个工作簿,您可使用WPS参考下述步骤完成操作:

1.打开表格文件,点击【数据-合并表格】

2.选择添加需合并的文档-开始合并;

3.合并完成后,被合并的工作簿将会变为多个「工作表」存在于一个「工作簿」内。



Sub 合并当前目录下所有工作e69da5e887aa7a686964616f338簿的全部工作表()
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("B65536").End(xlUp).Row + 2, 1) = Left(MyName, Len(MyName) - 4)
For G = 1 To Sheets.Count
Wb.Sheets(G).UsedRange.Copy .Cells(.Range("B65536").End(xlUp).Row + 1, 1)
Next
WbN = WbN & Chr(13) & Wb.Name
Wb.Close False
End With
End If
MyName = Dir
Loop
Range("B1").Select
Application.ScreenUpdating = True
MsgBox "共合并了" & Num & "个工作薄下的全部工作表。如下:" & Chr(13) & WbN, vbInformation, "提示"
End Sub

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网