vb初學者編程代碼大全「vb操作excel文件」

有時候,你需要將幾十個工作簿中的內容,快速匯總至合併至一個工作簿,如果手動一個複製粘貼,那心裏有苦說不出。。。

今天將大家用VBA一鍵合併,只需要幾秒種,為了測試這段代碼,我們新建了4個工作簿在文件夾中,數據都是模擬的,做試驗

Excel用VBA代碼一鍵合併匯總多個工作簿,省時省力必學!

一鍵合併代碼操作如下所示:

Excel用VBA代碼一鍵合併匯總多個工作簿,省時省力必學!

我們看原始表格數據,其中,第1個工作簿有點特殊,這個工作簿中,有兩個工作表,第1個工作表的內容是:

Excel用VBA代碼一鍵合併匯總多個工作簿,省時省力必學!

第2個工作表的內容是:

Excel用VBA代碼一鍵合併匯總多個工作簿,省時省力必學!

第2,3,4個工作簿中都是僅有1個工作表,如下所示:

Excel用VBA代碼一鍵合併匯總多個工作簿,省時省力必學!
Excel用VBA代碼一鍵合併匯總多個工作簿,省時省力必學!
Excel用VBA代碼一鍵合併匯總多個工作簿,省時省力必學!

通過代碼,我們一鍵可以合併,得到結果,這個匯總的結果有兩個特點

1、最後一列,還會顯示這些數據的來源是哪個工作簿,哪個表名的。

2、原始數據中每一行的標題自動取消,只保留了一個標題。

如下所示:

Excel用VBA代碼一鍵合併匯總多個工作簿,省時省力必學!

在Excel菜單欄中,點擊開發工具,打開VBA,輸入如下代碼:

Excel用VBA代碼一鍵合併匯總多個工作簿,省時省力必學!

其中代碼如下所示:

Sub 合併目錄所有工作簿全部工作表()

Dim MP, MN, AW, Wbn, wn

Dim Wb As Workbook

Dim i, a, b, d, c, e

Application.ScreenUpdating = False

MP = ActiveWorkbook.Path

MN = Dir(MP & “” & “*.xls”)

AW = ActiveWorkbook.Name

Num = 0

e = 1

Do While MN <> “”

If MN <> AW Then

Set Wb = Workbooks.Open(MP & “” & MN)

a = a + 1

With Workbooks(1).ActiveSheet

For i = 1 To Sheets.Count

If Sheets(i).Range(“a1”) <> “” Then

Wb.Sheets(i).Range(“a1”).Resize(1, Sheets(i).UsedRange.Columns.Count).Copy .Cells(1, 1)

d = Wb.Sheets(i).UsedRange.Columns.Count

c = Wb.Sheets(i).UsedRange.Rows.Count – 1

wn = Wb.Sheets(i).Name

.Cells(1, d + 1) = “表名”

.Cells(e + 1, d + 1).Resize(c, 1) = MN & wn

e = e + c

Wb.Sheets(i).Range(“a2”).Resize(c,d).Copy .Cells(.Range(“a1048576”).End(xlUp).Row + 1, 1)

End If

Next

Wbn = Wbn & Chr(13) & Wb.Name

Wb.Close False

End With

End If

MN = Dir

Loop

Range(“a1”).Select

Application.ScreenUpdating = True

MsgBox “共合併了” & a & “個工作薄下全部工作表。如下:” & Chr(13) & Wbn, vbInformation, “提示”

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/274664.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-17 14:15
下一篇 2024-12-17 14:15

相關推薦

發表回復

登錄後才能評論