『壹』 如何將多個excel文件的數據匯總到一個表格文件里
假設匯總的工作表名就叫「匯總」,右鍵輸入代碼:
Sub Together()
With Sheets("匯總")
For Each s In Sheets
If s.Name <> "匯總" Then
s.Range("a5:i5" ).Copy
Range("a" & Range("a65536").End(xlUp).Row + 1).PasteSpecial
End If
Next
End With
End Sub
『貳』 VBA匯總統一文件夾下的多個表格的數據
大家好,今天繼續講解《VBA資料庫解決方案》,今日講解的是第37講,利用ADO,實現同一文件夾下多個EXCEL工作表的數據匯總。最近的內容實用性比較強,如今日的內容,只把需要匯總的EXCEL文件放在同一個文件夾下,而且格式一致,那麼利用ADO匯總這幾個文件的數據是非常快的,這講的內容和第32講的內容是類似的,不過第32講的內容是要事先知道文件的名稱,然後建立一個數組來分別對應每個文件,通過循環來實現從每個文件中提取數據的目的,本講的內容是事先不知道每個文件的名稱。
實例:在一個文件夾下有若干個文件,如下圖:
我們現在,需要把上面的文件夾中除了「VBA與資料庫操作」之外的各個文件的內容一次性匯總出來,這個VBA程序該如何寫呢?代碼如下:
Sub mynzexcels_6()
'第37講,利用ADO,實現同一文件夾下EXCEL工作表數據的匯總
Dim cnADO As Object
Dim strPath, strTable, strSQL, Z As String
Set cnADO = CreateObject("ADODB.Connection")
Range("a:g").ClearContents
Range("a1:e1") = Array("日期", "型號", "批號", "出庫數量", "庫存數量")
Z = Dir(ThisWorkbook.Path & "\*.*")
strPath = ThisWorkbook.Path & "\" & Z
strTable = "[sheet1$A2:h65536]"
'建立連接,提取數據
x = 2
Do While Z <> ""
If Z <> "VBA與資料庫操作.xlsm" Then
cnADO.Open "provider=Microsoft.ACE.OLEDB.12.0;extended properties='excel 8.0;hdr=no;imex=1';data source=" & strPath
strSQL = "select F1,F2,F3,F4,F5 from " & strTable
Range("A" & x).CopyFromRecordset cnADO.Execute(strSQL)
x = Range("b65536").End(xlUp).Row
cnADO.Close
End If
Z = Dir
Loop
Set cnADO = Nothing
End Sub
代碼截圖:
代碼講解:
1 Z = Dir(ThisWorkbook.Path & "\*.*") 其中DIR函數用來指定文件名的字元串表達式,可能包含目錄或文件夾、以及驅動器。如果沒有找到 pathname,則會返回零長度字元串 ("")。
2 strPath = ThisWorkbook.Path & "\" & Z
strTable = "[sheet1$A2:h65536]"
上述代碼分別給出了文件的路徑名稱和數據表的范圍,數據的范圍是sheet1工作表除去表頭後的全部$A2:h65536.
3 strSQL = "select F1,F2,F3,F4,F5 from " & strTable
Range("A" & x).CopyFromRecordset cnADO.Execute(strSQL)
建立連接後把需要的數據拷貝出來,需要的數據是第1列,第2列,第3列,第4列 ,第5列
4 x = Range("b65536").End(xlUp).Row 下次復制的位置確定.
5 Z = Dir
特別注意:第一次調用 Dir 函數時,必須指定 pathname,否則會產生錯誤。如果也指定了文件屬性,那麼就必須包括 pathname。Dir 會返回匹配 pathname 的第一個文件名。若想得到其它匹配 pathname 的文件名,再一次調用 Dir,且不要使用參數。如果已沒有合乎條件的文件,則 Dir 會返回一個零長度字元串 ("")。一旦返回值為零長度字元串,並要再次調用 Dir 時,就必須指定 pathname,否則會產生錯誤。不必訪問到所有匹配當前 pathname 的文件名,就可以改變到一個新的 pathname 上。但是,不能以遞歸方式來調用 Dir 函數。以 vbDirectory 屬性來調用 Dir 不能連續地返回子目錄。由於文件名並不會以特別的次序來返回,所以可以將文件名存儲在一個數組中,然後再對這個數組排序。
上述的Z=dir 就是實現的下一個文件名的調用。
下面看運行的結果:
點擊「ADO實現同文件夾下所有文件數據匯總」按鈕:
匯總後再A到E列給出了數據的匯總:
今日內容迴向:
1 在不知道文件名和文件個數的前提下,如何匯總文件?
2 DIR函數的意義是否理解?
『叄』 如何把多個EXCEL文件匯總到一個EXCEL中
匯總方法如下:
1,新建一個空白的Excel文件,點擊數據工具欄,依次選擇「新建查詢」-「從文件」-「從文件夾」。
『肆』 怎麼將EXCEL表格裡面的工作表匯總到一個工作表
1.首先,打開Excel文件,依次點擊菜單欄的「數據」->「新建查詢」->「從文件」->「從工作簿
2.接著在彈出的「導入數據」對話框中選擇我們需要合並的Excel文件,點擊「導入」按鈕
3.然後在彈出的「Navigator」對話框中勾選「select multiple items」,選擇我們需要合並的表格,也就是表一、表二、標三,如下,點擊「Transform Data」按鈕
4.接著在彈出的對話框中依次選擇「Combine」->「Append Queries」->「Append Queries as New」
5.在彈出的「Append」對話框中選擇「Three or more tables」,將需要合並的表格依次添加到右邊,點擊「OK」按鈕
6.接著就會出現一個新表,裡面就是3個表格合並後的數據
7.點擊菜單欄的「Close & Load」,合並後的數據如下,就是3個總的數據
『伍』 匯總統一文件夾下的多個表格的數據
1、首先打開多個EXCEL表格,點擊進入匯總的表格。
『陸』 excel多表格怎麼匯總
打開匯總工作簿,Excel2016版執行數據(10、13版power querry) - 新建查詢 - 從文件 - 從文件夾。
添加切片器後,將讓表格任意生成:
成本匯總表、利潤匯總表等各種表格,想要深入了解powerquery的話你還需要學習更多知識哦!