建国90周年纪念币:EXCEL表格的几种合并

来源:百度文库 编辑:偶看新闻 时间:2024/04/28 20:06:13
EXCEL表格的几种合并 2011.7.13阅读(33)
新建一个工作表,命名后保存到和与合并的N个文件同一个文件文件夹,按 alt + f11,双击工程资源管理器里面的sheet1(sheet1),在右侧的代码区粘贴如下代码。运行。等候一会就OK了。 宏1:合并当前目录下所有工作簿的全部工作表到当前工作表Sub 合并当前目录下所有工作簿的全部工作表() 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("A65536").End(xlUp).Row + 2, 1) = Left(MyName, Len(MyName) - 4) For G = 1 To Sheets.Count Wb.Sheets(G).UsedRange.Copy .Cells(.Range("A65536").End(xlUp).Row + 1, 1) Next WbN = WbN & Chr(13) & Wb.Name Wb.Close False End With End If MyName = Dir Loop Range("A1").Select Application.ScreenUpdating = True MsgBox "共合并了" & Num & "个工作薄下的全部工作表。如下:" & Chr(13) & WbN, vbInformation, "提示" End Sub 宏2:多个文件表合到一个文件表的多个SHEET中Sub CombineWorkbooks()Dim FilesToOpen, ftDim x As IntegerApplication.ScreenUpdating = FalseOn Error GoTo errhandlerFilesToOpen = Application.GetOpenFilename _(FileFilter:="Micrsofe Excel文件(*.xls), *.xls", _MultiSelect:=True, Title:="要合并的文件")If TypeName(FilesToOpen) = "boolean" ThenMsgBox "没有选定文件"'GoTo errhandlerEnd Ifx = 1While x <= UBound(FilesToOpen)Set wk = Workbooks.Open(Filename:=FilesToOpen(x))wk.Sheets().Move after:=ThisWorkbook.Sheets _(ThisWorkbook.Sheets.Count)x = x + 1WendMsgBox "合并成功完成!"errhandler:'MsgBox Err.Description'Resume errhandlerEnd SubEXCEL:一个工作薄中多个工作表合并代码在EXCEL中,到合并表里打开宏,将下列代码进行粘贴并保存。然后返回你需要合并的工作表中。或按 alt + f11,双击工程资源管理器里面的合并表的SHEET,在右侧的代码区粘贴如下代码。运行此宏,就合并了。Sub 合并sheets()    n = 12 '源表个数,根据需要修改!    nstart = 9 '每个单表数据的起始行数,根据需要修改!    k = nstart '目标表的行标    For i = 1 To n        irow = nstart '行标        While Sheets(i).Cells(irow + 1, 1) <> "" '后面个1以第1列数据为结束标示,确定源表的行数,根据需要修改!            irow = irow + 1        Wend        Sheets(i).Rows(nstart & ":" & irow).Copy '复制源数据行        Sheets(n + 1).Activate        Sheets(n + 1).Cells(k, 1).Select        ActiveSheet.Paste '粘贴数据        k = k + irow - nstart + 1    Next iEnd Sub