求助:用VBA把文件夹下所有excel表集中在一个文件中

文件夹下有几十个excel文件,我想一次性把这些文件中的sheet1都复制在一个文件中,sheet名为原来的文件名,代码应该怎么写?

看起来有点长,但不需要修改:
Sub copysheet1()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
BkName = ActiveWorkbook.Name
For i = Sheets.Count To 2 Step -1
Sheets(i).Delete
Next i
MsgBox "请选择 Excel文件 的路径!"
With Application.FileDialog(msoFileDialogFolderPicker)
.AllowMultiSelect = False
.Show
folderspec = .SelectedItems(1)
If Right(SavePath, 1) <> "\" Then
folderspec = folderspec + "\"
End If
End With
Dim fs, f, f1, fc
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(folderspec)
Set fc = f.Files
sc = 1
For Each f1 In fc
If Right(f1.Name, 3) = "xls" Then
fName = folderspec + f1.Name
sName = Left(f1.Name, Len(f1.Name) - 4)
Workbooks.Open fName
Sheets("Sheet1").Copy After:=Workbooks(BkName).Sheets(sc)
sc = sc + 1
Sheets(sc).Name = sName
If Workbooks(2).Name <> BkName Then
Workbooks(2).Close
End If
End If
Next
Application.DisplayAlerts = True
Application.ScreenUpdating = True
MsgBox "复制完毕!请保存。"
Application.FileDialog(msoFileDialogSaveAs).Show
End Sub
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-09-07
Sub dirf()
mypath = "C:\test\*.xls" '路径修改一下
myname = Dir(mypath)
Do While myname <> ""
Workbooks.Open "C:\test\" & myname
Sheets(1).Copy After:=Workbooks("test.xls").Sheets(1) 'test.xls 为试验文件,你自己的建一个,把它改成你的。
Workbooks(myname).Close
myname = Dir
Loop
End Sub

vba问题,把文件夹下所有excel工作表表格中的内容提取倒一个工作表...
Excel快速批量将相同表式多文件数据汇总成总表万能操作编制

用vba实现同一个文件夹内的多个excel文件,对同sheet名的工作簿合并成...
Set 源工作簿 = Workbooks.Open(文件夹路径 & 文件名)' 设置源工作表,这里假设要合并的工作表名为"Data",可以根据实际情况修改 Set 源工作表 = 源工作簿.Sheets("Data")' 找到目标工作表中的最后一行 最后一行 = 目标工作表.Cells(目标工作表.Rows.Count, "A").End(xlUp).Row + 1 ' 将...

求一个VBA,一个文件夹中多个EXCEL工作簿合并成一个工作表?
1、将需要合并的EXCEL文件与目的EXCEL文件放在一个文件夹下。2、 打开HB.xlsx,将“开发工具”菜单加载到EXCEL菜单下。3、首先右键点击菜单空白处,选择“自定义功能区”,在弹出的对话框里选择主选项卡。然后勾选“开发工具”。如图所示。4、 制作导入键。点击“开发工具”菜单,选择“插入”--“Activ...

如何用VBA将同一个文件夹下所有EXCEL表中的所有sheet表的数据导出到一...
新建一个工作薄,将所有EXCEL表的文件名填到A列中,复制下面VBA代码到工作薄中,保存为excel.xls后执行 Sub xlscopy()Application.ScreenUpdating = False 'Arr数组由所有EXCEL文件名组成 arr = [A1:A10]For i = 1 To UBound(arr)Workbooks.Open "文件夹路径\\" & arr(i, 1)Workbooks(arr(i)(...

VBA怎麼把一个文件夹裏面的所有excel文件复制到一个总文件夹裏面
Sub copyall()For i = 1 To 5 '把这个数字改成你的文件总数 Set excel_Book = Workbooks.Open("地址" & i & ".xls") '地址写作"E:\\xxx\\xxx\\",把数字空出来,保留英文双引号。如果是xlsx请在此处 ↑ 后缀上更改 Set excel_Sheet = excel_Book.Worksheets("Sheet1") exc...

VBA抓取文件夹下Excel工作簿固定位置的数据汇总到一个工作簿里
Sub a() Dim nm As String, filePath As String Dim wb As Workbook Dim brr(),n,str Set wb = ActiveWorkbook filePath = wb.Path & "\\" nm = Dir(filePath & "*.xls*") Application.DisplayAlerts = False n=1 redim brr(1 to 100000) Do While Len(nm) <> 0...

如何用VBA将多个excel表格合并成一个呢?
1、首先我们打开需要汇总的excel表格,在表格的下面,重命名一个表格,我们暂且命名为“汇总”。然后我们点击打开数据中的“合并计算”选项。然后我们在弹出来的窗口中的点击引用位置后面的图标。2、如果是相同格式的Excel表格,可以利用VBA快速将几个工作表中的数据全部汇总到一个工作表中。3、,新建一个...

VBA汇总统一文件夹下的多个表格的数据?
实例:在一个文件夹下有若干个文件,如下图:我们现在,需要把上面的文件夹中除了“VBA与数据库操作”之外的各个文件的内容一次性汇总出来,这个VBA程序该如何写呢?代码如下:Sub mynzexcels_6()'第37讲,利用ADO,实现同一文件夹下EXCEL工作表数据的汇总 Dim cnADO As Object Dim strPath, strTable...

如何用vba合并多个excel文件到一个sheet里
新建一个工作薄,将所有EXCEL表的文件名填到A列中,复制下面VBA代码到工作薄中,保存为excel.xls后执行Sub xlscopy() Application.ScreenUpdating = False'Arr数组由所有EXCEL文件名组成 arr = [A1:A10] For i = 1 To UBound(arr) Workbooks.Open "文件夹路径\\" & arr(i, 1) Workbo...

vba合并指定文件夹的所有excel文件
1、新建一个文件夹、将要合并的表格放到里面、新建一个表格、用excel打开、右击Sheet1 2、选择查看代码(PS:excel有着一项,WPS没有)3、将下列代码复制到文本框中:Sub 合并当前目录下所有工作簿的全部工作表()Dim MyPath, MyName, AWbName Dim Wb As workbook, WbN As String Dim G As Long D...

相似回答