可能大家遇到過這樣的情況,有時候領(lǐng)導(dǎo)發(fā)下來一個表格,需要統(tǒng)計每個人的信息,大家都填好后,還要匯總到一起。如果一個一個復(fù)制的話,還是比較繁瑣,現(xiàn)在給大家提供一種思路。
例子是這樣的,我這里有三個工作簿信息已經(jīng)填好,每個工作簿的格式是一樣的。
下邊要實現(xiàn)這一功能,需要用到VBA,現(xiàn)在把VBA代碼貼出來。
Sub 工作薄間合并()
Application.ScreenUpdating = False
FileOpen = Application.GetOpenFilename(FileFilter:="Microsoft Excel文件(*.xls*),*.xls", MultiSelect:=True)
X = 1
While X <= UBound(FileOpen)
Set ss = Workbooks.Open(Filename:=FileOpen(X))
ss.Activate
Z = ThisWorkbook.Sheets(1).Range("A65536").End(xlUp).Row + 1
Sheets(1).Range("A2:L4").Copy ThisWorkbook.Sheets(1).Cells(Z, 1)
X = X + 1
ss.Close False
Wend
Application.ScreenUpdating = True
MsgBox "所選工作簿已經(jīng)合并完畢!", vbInformation, "提示"
End Sub
我們先打開三個工作簿其中一個,這里我開的是 小明.xlsx。
這時會彈出打開對話框,打開其余的表格。
返回到工作表中,我們發(fā)現(xiàn),幾個表的數(shù)據(jù)已經(jīng)合并好了。
代碼說明:
你可能需要修改的代碼,是下圖中加底色的部分。
黃色:是代表的本工作表sheet1,即打開的工作表,如果你的sheet1是別的名(比如“信息”),將黃色部分改為thisworkbook.sheets(“信息”)
綠色:是代表的其他工作表sheet1,如果是別的名字(比如“信息”),請改為sheets(“信息”)
青色:索引的是要合并的表格信息所占的區(qū)域,注意請不要包含表頭,如果每個工作表內(nèi)條數(shù)不一,請設(shè)置一個最大的,包含空行也沒關(guān)系,會自動剔除。比如我設(shè)置的是A2:L4,這個區(qū)域完全包含了表格的內(nèi)容,并且去掉了表頭信息。