日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時間:2023/12/20 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VBA将excel中的多个工作表sheet合成一个工作表,多个工作簿的多个工作表合并为一个工作簿 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1 將excel中的多個工作表sheet合成一個工作表

工作表合成前:


工作表合成后:

?

?
**第一步:**在文件中新建一個工作表sheet,用來存放合成后的數(shù)據(jù),如圖所示:

第二步:點擊“開發(fā)工具—>查看代碼”命令,如圖所示:

第三步在sheet1(sheet2)中輸入代碼,如圖所示:

這個程序文件名的長度可能會有問題

給前面加序號 windows? ?1.txt 修改為 1.bat 雙擊執(zhí)行

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

具體代碼如下:
?

Private Sub sheets() Application.ScreenUpdating = False '合并工作表 Dim asheet As Worksheet Set asheet = ActiveSheetDim sum As Long sum = 1'循環(huán)遍歷每個工作表 Workbooks(1).sheets.Count 這個數(shù)目不一定 可能 -1 -2 -3 For j = 1 To Workbooks(1).sheets.Count '判斷遍歷的工作表是否是合并后的那張工作表If Workbooks(1).sheets(j).Name <> ActiveSheet.Name Then'如果不是,定義所遍歷的工作表數(shù)據(jù)行數(shù)'把所遍歷的工作表中的數(shù)據(jù)復制到合并的那張工作表中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'定義合并后工作表的數(shù)據(jù)行數(shù)Cons = Range("A65536").End(xlUp).Row'通過上面方法合并工作表后會存在第一行沒有數(shù)據(jù),所以刪除第一行Range("A1").EntireRow.Delete'從后往前遍歷合并后的工作表第一列數(shù)據(jù)For i = Cons To 3 Step -1'判斷是否是需要刪除的字段名,“序號”是表格中當前字段開頭的名字If Range("A" & i) = "單據(jù)號" Then'如果是,執(zhí)行刪除Range("A" & i).EntireRow.DeleteEnd IfNext iRange("B1").SelectApplication.ScreenUpdating = TrueMsgBox "當前工作簿下的全部工作表已經(jīng)合并完畢!", vbInformation, "提示"End Sub

第五步:點擊“運行”即可。或者“點擊運行—>運行子過程/用戶窗體”。

?這樣工作表就可以合在一起了!

2??多個工作簿的多個工作表合并為一個工作簿

Sub CombineWorkbooks()Dim strFileName As StringDim wb As WorkbookDim ws As Object'包含工作簿的文件夾,可根據(jù)實際修改Const strFileDir As String = "D:示例數(shù)據(jù)記錄"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里如何將多個工作簿合并到一個工作簿中 - 走看看

總結

以上是生活随笔為你收集整理的VBA将excel中的多个工作表sheet合成一个工作表,多个工作簿的多个工作表合并为一个工作簿的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。