1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > excel合并同一目录下代码(多文件合并到同一个文件多Sheet下 多文件合并到同一个Sheet下)

excel合并同一目录下代码(多文件合并到同一个文件多Sheet下 多文件合并到同一个Sheet下)

时间:2019-05-30 04:51:53

相关推荐

excel合并同一目录下代码(多文件合并到同一个文件多Sheet下 多文件合并到同一个Sheet下)

一、多文件合并到同一个文件多Sheet下:

1、在想要合并的excel文件目录中新建一个excel文件。

2、右键新建excel中的sheet1选择“查看代码”,或者Alt+F11直接调出VBA操作界面。

3、运行以下代码(蓝色加粗倾斜字体为代码)。

注意:

1、excel文件类型是xls和xlsx,需要对应修改代码里的后缀

2、合并前最好关闭其他excel文件,否则可能出现合并数据插入到其他excel的情况。

3、该代码不支持被合并的excel多sheet情况,只会把第一个sheet合并到结果excel

代码如下:

'功能:把多个excel工作簿的第一个sheet工作表合并到一个excel工作簿的多个sheet工作表,新工作表的名称等于原工作簿的名称Sub Books2Sheets()'定义对话框变量Dim fd As FileDialogSet fd = Application.FileDialog(msoFileDialogFilePicker)'新建一个工作簿Dim newwb As WorkbookSet newwb = Workbooks.AddWith fdIf .Show = -1 Then'定义单个文件变量Dim vrtSelectedItem As Variant'定义循环变量Dim i As Integeri = 1'开始文件检索For Each vrtSelectedItem In .SelectedItems'打开被合并工作簿Dim tempwb As WorkbookSet tempwb = Workbooks.Open(vrtSelectedItem)'复制工作表tempwb.Worksheets(1).Copy Before:=newwb.Worksheets(i)'把新工作簿的工作表名字改成被复制工作簿文件名,这儿应用于xls文件,即Excel97-的文件,如果是Excel,需要改成xlsxnewwb.Worksheets(i).Name = VBA.Replace(tempwb.Name, ".xls", "")'关闭被合并工作簿tempwb.Close SaveChanges:=Falsei = i + 1Next vrtSelectedItemEnd IfEnd WithSet fd = NothingEnd Sub

二、多文件合并到同一个Sheet下:

1、在想要合并的excel文件目录中新建一个excel文件。

2、右键新建excel中的sheet1选择“查看代码”,或者Alt+F11直接调出VBA操作界面。

3、运行以下代码(蓝色加粗倾斜字体)。

注意:

1、excel文件类型是xls和xlsx,需要对应修改代码里的后缀

2、合并前最好关闭其他excel文件,否则可能出现合并数据插入到其他excel的情况。

代买如下:

Sub 合并当前目录下所有工作簿的全部工作表()Dim MyPath, MyName, AWbNameDim Wb As workbook, WbN As StringDim G As LongDim Num As LongDim BOX As StringApplication.ScreenUpdating = FalseMyPath = ActiveWorkbook.PathMyName = Dir(MyPath & "\" & "*.xls")AWbName = ActiveWorkbook.NameNum = 0Do While MyName <> ""If MyName <> AWbName ThenSet Wb = Workbooks.Open(MyPath & "\" & MyName)Num = Num + 1With Workbooks(1).ActiveSheet.Cells(.Range("B65536").End(xlUp).Row + 2, 1) = Left(MyName, Len(MyName) - 4)For G = 1 To Sheets.CountWb.Sheets(G).UsedRange.Copy .Cells(.Range("B65536").End(xlUp).Row + 1, 1)NextWbN = WbN & Chr(13) & Wb.NameWb.Close FalseEnd WithEnd IfMyName = DirLoopRange("B1").SelectApplication.ScreenUpdating = TrueMsgBox "共合并了" & Num & "个工作薄下的全部工作表。如下:" & Chr(13) & WbN, vbInformation, "提示"End Sub

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。