300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > VBA将excel中的多个工作表sheet合成一个工作表 多个工作簿的多个工作表合并为一个工作簿

VBA将excel中的多个工作表sheet合成一个工作表 多个工作簿的多个工作表合并为一个工作簿

时间:2019-07-25 08:46:09

相关推荐

VBA将excel中的多个工作表sheet合成一个工作表 多个工作簿的多个工作表合并为一个工作簿

1 将excel中的多个工作表sheet合成一个工作表

工作表合成前:

工作表合成后:

**第一步:**在文件中新建一个工作表sheet,用来存放合成后的数据,如图所示:

第二步:点击“开发工具—>查看代码”命令,如图所示:

第三步在sheet1(sheet2)中输入代码,如图所示:

这个程序文件名的长度可能会有问题

给前面加序号 windows 1.txt 修改为 1.bat 双击执行

@echo offsetlocal enabledelayedexpansionfor /f "tokens=*" %%i in ('dir/b/a-d') do (set /a cnt+=1set fn=00!cnt!_!ren "%%i" "!fn:~-3!%%i")pause

具体代码如下:

Private Sub sheets()Application.ScreenUpdating = False'合并工作表Dim asheet As WorksheetSet asheet = ActiveSheetDim sum As Longsum = 1'循环遍历每个工作表 Workbooks(1).sheets.Count 这个数目不一定 可能 -1 -2 -3For j = 1 To Workbooks(1).sheets.Count '判断遍历的工作表是否是合并后的那张工作表If Workbooks(1).sheets(j).Name <> ActiveSheet.Name Then'如果不是,定义所遍历的工作表数据行数'把所遍历的工作表中的数据复制到合并的那张工作表中Workbooks(1).sheets(j).SelectWorkbooks(1).sheets(j).UsedRange.SelectSelection.Copyasheet.Selectasheet.Cells(sum, 1).Selectasheet.Pastesum = sum + Workbooks(1).sheets(j).Range("A65536").End(xlUp).Row + 1End IfNext j'删除多余的表头Dim i As Integer, Cons As Integer'定义合并后工作表的数据行数Cons = Range("A65536").End(xlUp).Row'通过上面方法合并工作表后会存在第一行没有数据,所以删除第一行Range("A1").EntireRow.Delete'从后往前遍历合并后的工作表第一列数据For i = Cons To 3 Step -1'判断是否是需要删除的字段名,“序号”是表格中当前字段开头的名字If Range("A" & i) = "单据号" Then'如果是,执行删除Range("A" & i).EntireRow.DeleteEnd IfNext iRange("B1").SelectApplication.ScreenUpdating = TrueMsgBox "当前工作簿下的全部工作表已经合并完毕!", vbInformation, "提示"End Sub

第五步:点击“运行”即可。或者“点击运行—>运行子过程/用户窗体”。

这样工作表就可以合在一起了!

2多个工作簿的多个工作表合并为一个工作簿

Sub CombineWorkbooks()Dim strFileName As StringDim wb As WorkbookDim ws As Object'包含工作簿的文件夹,可根据实际修改Const strFileDir As String = "D:示例数据记录"Application.ScreenUpdating = FalseSet wb = Workbooks.Add(xlWorksheet)strFileName = Dir(strFileDir & "*.xls*")Do While strFileName <> vbNullStringDim wbOrig As WorkbookSet wbOrig = Workbooks.Open(Filename:=strFileDir & strFileName, ReadOnly:=True)strFileName = Left(strFileName, 2)For Each ws In wbOrig.Sheetsws.Copy After:=wb.Sheets(wb.Sheets.Count)wb.Sheets(wb.Sheets.Count).Name = strFileName & ws.IndexNextwbOrig.Close SaveChanges:=FalsestrFileName = DirLoopApplication.DisplayAlerts = Falsewb.Sheets(1).DeleteApplication.DisplayAlerts = TrueApplication.ScreenUpdating = TrueSet wb = NothingEnd Sub

转载地址:

将excel中的多个工作表sheet合成一个工作表_猫哥,你好的博客-CSDN博客_多个sheet合并成一个表

在Excel里如何将多个工作簿合并到一个工作簿中 - 走看看

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