今天拿到 一些表格,每張表里含有多張sheet,但格式都是一樣的,需要將每張sheet匯總起來放到一張表里,這裡將方法說一下,也方便自己以後再用。
新建一個總表,準備開始匯總。
按下Alt+F11,打開VBA,左鍵雙擊左邊的的名為」總表「的工作表,確保後續的代碼是複製到這個工作表中。
選中總表雙擊
在右邊的空白區域,輸入下面的代碼:
Sub main()
For Each sh In Sheets
If sh.Name <> "總表" Then
i = sh.Range("D65536").End(3).Row
k = Range("A65536").End(3).Row
sh.Range("A2:D" & i).Copy Range("A" & k + 1)
End If
Next
End Sub
輸入代碼
之後選擇工具,宏,運行。稍等一會兒即匯總完畢。
運行宏
代碼詳解:
- Sub main()——main是宏名,可以修改。
- For Each sh In Sheets——遍歷所有的工作表,不需要匯總的請刪除
- If sh.Name <> "總表" Then——這裡是判斷工作表的名字是不是」總表「,如果是總表,就不匯總數據
- i = sh.Range("B65536").End(3).Row——獲得行號,在實際的使用過程中,一定要選擇一個最後一行有數據的列,否則不能獲得最大行號
- k = Range("A65536").End(3).Row——這裡是獲得總表的最大行號,以便複製粘貼,無需更改。
- sh.Range("A2:D" & i).Copy Range("A" & k + 1)——「A2:D」&i是要複製的區域,可根據需要進行調整
- Range("A" & k + 1)——這裡是從總表的A列開始粘貼,假如是從D列開始,那麼這裡的A改為D即可
- End If Next End Sub——結束,無需更改
簡單介紹完了,有需要的可以試試。