把多个Excel文件合并到一个Excel文件的多个工作表(Sheet)里

时间:2022-08-05 19:58:47


     实现的功能是把多个Excel文件的第一个工作表(Sheet)合并到一个Excel文件的多个工作表里,并且新工作表的名称等于原Excel文件的文件名。开发环境Excel2007,但是Excel2003应该也能用,Excel2000似乎不能用。代码如下:

'功能:把多个工作簿的第一个工作表合并到一个工作簿的多个工作表,新工作表的名称等于原工作簿的名称

新建的excel新表---书签sheet1--右击查看代码-复制代码进入---运行-选择需要合并的表--OK
Sub Books2Sheets()
    '定义对话框变量
    Dim fd As FileDialog
    Set fd = Application.FileDialog(msoFileDialogFilePicker)

    '新建一个工作簿
    Dim newwb As Workbook
    Set newwb = Workbooks.Add

    With fd
        If .Show = -1 Then
            '定义单个文件变量
            Dim vrtSelectedItem As Variant

            '定义循环变量
            Dim i As Integer
            i = 1

            '开始文件检索
            For Each vrtSelectedItem In .SelectedItems
                '打开被合并工作簿
                Dim tempwb As Workbook
                Set tempwb = Workbooks.Open(vrtSelectedItem)

                '复制工作表
                tempwb.Worksheets(1).Copy Before:=newwb.Worksheets(i)

                '把新工作簿的工作表名字改成被复制工作簿文件名,这儿应用于xls文件,即Excel97-2003的文件,如果是Excel2007,需要改成xlsx
                newwb.Worksheets(i).Name = VBA.Replace(tempwb.Name, ".xls", "")

                '关闭被合并工作簿
                tempwb.Close SaveChanges:=False

                i = i + 1
            Next vrtSelectedItem
        End If
    End With

    Set fd = Nothing
End Sub
表合并完成后再进行修改每一个sheet的名称

注意:没有合并上去的表,在表中新增加一个sheet空表--按住表名称再进行复制移动过去到总表中

 

如何快速合并单个excel表中的多个sheet的工作页

1.首先要在最前页新建一个工作表。

2.在新建的sheet表中“右键”,找到“查看代码”,然后看到宏计算界面。

3.看到宏计算界面,我们就只需要把下面的代码复制进去,代码如下----点击运行即可

Sub 合并当前工作簿下的所有工作表()

Application.ScreenUpdating = False

For j = 1 To Sheets.Count

   If Sheets(j).Name <> ActiveSheet.Name Then

       X = Range("A65536").End(xlUp).Row + 1

       Sheets(j).UsedRange.Copy Cells(X, 1)

   End If

Next

Range("B1").Select

Application.ScreenUpdating = True

MsgBox "当前工作簿下的全部工作表已经合并完毕!", vbInformation, "提示"

End Sub