使用場景:進行數據測試的時候,會跑出來很多張表,要求是盡量放在一個excel里面,分不同的sheet頁
數量不多的話還能手動復制粘貼弄一下,之前也用過vb腳本,但是導出數據為excel的時候一個excel文件會有三個sheet,運行腳本合並時這些空的sheet頁也會匯總進去
解決方法:導出的時候導出為csv格式,編碼選擇936 gbk,這樣的話csv的sheet頁只有一個,名稱也會csv文件名稱一樣,此時使用腳本就很奈斯了
使用步驟:
1,將需要匯總的表全部導出到同一個文件夾下,編碼選擇936 gbk
2,在文件夾下新建一個excel文件,右鍵點擊sheet頁,點擊查看代碼
3,復制以下代碼,粘貼,按f5執行
Sub Find()
Application.ScreenUpdating = False
Dim MyDir As String
MyDir = ThisWorkbook.Path & "\"
ChDrive Left(MyDir, 1) 'find all the excel files
ChDir MyDir
Match = Dir$("")
Do
If Not LCase(Match) = LCase(ThisWorkbook.Name) Then
Workbooks.Open Match, 0 'open
ActiveSheet.Copy Before:=ThisWorkbook.Sheets(1) 'copy sheet
Windows(Match).Activate
ActiveWindow.Close
End If
Match = Dir$
Loop Until Len(Match) = 0
Application.ScreenUpdating = True
End Sub
4,完成后也不用保存,檢查一下匯總結果,X掉就可以了
順帶記錄一下查看有幾個sheet的代碼
sub xxx()
msgbox sheets.count
end sub