導航:首頁 > 數據分析 > 怎麼用vba匯總三個匯總表數據

怎麼用vba匯總三個匯總表數據

發布時間:2024-11-10 16:25:14

Ⅰ Excel濡備綍楂樻晥奼囨誨氫釜宸ヤ綔綈挎暟鎹錛熶竴鏂囩粰浣犺叉竻妤氾紒銆愰檮瀹屾暣鐨刅BA浠g爜銆佷嬌鐢ㄨ嗛戙

鍦‥xcel鐨勪笘鐣岄噷錛屾暟鎹鏁村悎鏄涓欏逛笉鍙鎴栫己鐨勬妧鑳姐傚綋浣犻渶瑕侀珮鏁堝湴奼囨誨氫釜宸ヤ綔綈誇腑鐨勬暟鎹錛屽彲鑳戒細閬囧埌鏍煎紡涓嶇粺涓鍜屾爣棰樿屽勭悊鐨勬寫鎴樸傚埆鎷呭績錛岃繖綃囨寚鍗楀皢涓轟綘鎻紺哄備綍閫氳繃VBA緙栫▼瀹炵幇榪欎竴鐩鏍囷紝鍚屾椂闄勪笂瀹炵敤鐨勪唬鐮佺ず渚嬪拰鎿嶄綔瑙嗛戱紝璁╀綘鐨勫伐浣滄洿鍔犲緱蹇冨簲鎵嬨


1. 鏁版嵁鏁村悎鐨勯粍閲戞硶鍒


棣栬佸師鍒欐槸紜淇濇墍鏈夊伐浣滅翱鐨勬牸寮忓拰鏍囬樿屼繚鎸佷竴鑷達紝鍚﹀垯鍙鑳戒細褰卞搷鏁版嵁鐨勫噯紜鎬у拰鍙鐢ㄦс傝繖鏄浣犵殑鏁版嵁闆嗘垚涔嬫棶鐨勮搗璺戠嚎銆


2. VBA緙栫▼澶ф樉韜鎵


璁╂垜浠娣卞叆鎺㈣ㄥ備綍緙栧啓VBA鑴氭湰鏉ヨ嚜鍔ㄥ寲榪欎釜榪囩▼銆傝繖閲屾湁涓ょ嶆柟娉曚緵浣犻夋嫨錛



  1. 涓絳夐毦搴︼細鍚堝苟N涓宸ヤ綔綈胯嚦涓涓奼囨昏〃

    • 鎴戜滑鎻愪緵涓浠借﹀敖鐨刅BA浠g爜紺轟緥錛屽畠鍖呮嫭鑾峰彇鏂囦歡澶硅礬寰勭殑Private Sub銆侀愪釜鎵撳紑宸ヤ綔綈垮苟澶嶅埗鏁版嵁鐨凷ub 鍚堝苟宸ヤ綔綈匡紝浠ュ強澶勭悊鏍囬樿岀殑閫昏緫銆

    • 瑙嗛戞暀紼嬪凡緇忎負浣犲噯澶囧ソ浜嗭紝璁╁︿範榪囩▼鏇村姞鐩磋傛槗鎳傦細[瑙嗛戦摼鎺](https://www.hu.com/video/1655487718032310272)




鎿嶄綔姝ラゅ備笅錛



  1. 鎵撳紑姣忎釜宸ヤ綔綈匡紝灝嗘暟鎹綺懼噯澶嶅埗鍒版眹鎬誨伐浣滆〃鐨勬柊瀛愯〃涓銆

  2. 鍒╃敤VBA鐨勫己澶у姛鑳斤紝閫氳繃Dir鍜孖nputBox鑾峰彇鏂囦歡澶硅礬寰勶紝閫愪竴澶勭悊姣忎釜宸ヤ綔綈匡紝紜淇濇暟鎹鍖哄煙琚澶嶅埗鍒版眹鎬誨伐浣滆〃鐩稿簲浣嶇疆銆

  3. 鏍囬樿岀殑澶勭悊鍒欐牴鎹杈撳叆榪涜岃皟鏁達紝棣栨″寘鍚錛屽悗緇鍒欐牴鎹闇奼傝嚜鍔ㄩ傚簲銆


3. 瀹炴垬搴旂敤涓庨毦搴﹁瘎浼


榪欎釜浠誨姟鐨勯毦搴﹁瘎鍒嗕負⭐️⭐️⭐️錛屾剰鍛崇潃瀹冩棦闇瑕佷竴浜涘熀紜鐨刅BA鐭ヨ瘑錛屼篃鑰冮獙浜嗘暟鎹澶勭悊鍜岄昏緫鎬濈淮銆傚傛灉浣犳e湪澶勭悊10涓鎴栨洿灝戠殑宸ヤ綔綈匡紝榪欏皢鏄涓涓鐞嗘兂鐨勫疄璺甸」鐩銆


4. 奼囨繪垚鏋滀笌瀛︿範璧勬簮


瀹屾垚鏁版嵁鏁村悎鍚庯紝浣犲皢鐪嬪埌涓涓鏁存磥鐨勬眹鎬誨伐浣滆〃錛屾竻鏅板湴灞曠ず浜嗘墍鏈変俊鎮銆傝嗛戞暀紼嬩笉浠呮紨紺轟簡鏁翠釜榪囩▼錛岃繕鎻愪緵浜嗚В絳旂枒闂鍜岃繘闃舵妧宸х殑棰濆栧府鍔┿傝塊棶[閾炬帴](瑙嗛戦摼鎺)浠ヨ幏鍙栨洿澶氳︾粏鎸囧煎拰VBA榪涢樁鎶宸э紝濡係QL鍩虹鐭ヨ瘑銆乂BA鍩虹銆丒xcel鎻掍歡鐨勮繍鐢ㄧ瓑銆


嬈蹭簡瑙f洿澶氬疄鐢ㄦ暀紼嬪拰鑱屼笟鍙戝睍寤鴻錛屼笉濡ㄥ叧娉ㄦ垜浠鐨勪笓瀹跺崥涓伙細[鑱屽満鑰侀笩涓婚〉](https://www.example.com/yourexpert)錛岄偅閲屾湁涓板瘜鐨勮祫婧愮瓑寰呬綘鍘繪帰緔銆


鐜板湪錛屼綘宸茬粡鎺屾彙浜咵xcel鏁版嵁奼囨葷殑VBA縐樼睄錛屽噯澶囧紑濮嬩綘鐨勯珮鏁堟暣鍚堜箣鏃呭惂錛

Ⅱ 求VBA合並多個excel表格,並且分類匯總求和

合並表格用vba,合並數據再用power query,分了兩步,這樣比較省事。

VBA代碼

Sub hebing()

Dim 行號%, 路徑$, 文件$, WB As Workbook, SHT As Worksheet

Application.ScreenUpdating = 0

Worksheets("Sheet1").Cells.Clear

Worksheets("Sheet1").Range("A1:C1") = Array("姓名", "數量", "金額")

路徑 = "C: est合並"

ChDir 路徑

文件 = Dir("*.xlsx")

行號 = 2

Do Until 文件 = ""

Set WB = GetObject(路徑 & 文件)

Set SHT = WB.Worksheets(1)

SHT.Range("A2:C" & SHT.UsedRange.Rows.Count).Copy

ThisWorkbook.Worksheets("Sheet1").Cells(行號, 1).PasteSpecial

行號 = ThisWorkbook.Worksheets("Sheet1").UsedRange.Rows.Count + 1

WB.Close

文件 = Dir

Loop

Set WB = Nothing

Sheet1.Select

Sheet1.UsedRange.Select

Sheet1.ListObjects.Add(xlSrcRange).Name = "合並"

Sheet2.[a1].ListObject.QueryTable.Refresh

Application.ScreenUpdating = 1

End Sub


PowerQuery代碼:

let

源 = Excel.CurrentWorkbook(){[Name="合並"]}[Content],

分組的行 = Table.Group(源, {"姓名"}, {{"數量", each List.Sum([數量]), type number}, {"金額", each List.Sum([金額]), type number}})

in

分組的行


操作方法:

Ⅲ 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函數的意義是否理解?

閱讀全文

與怎麼用vba匯總三個匯總表數據相關的資料

熱點內容
templatewebjs下載 瀏覽:774
note3應用程序未安裝 瀏覽:714
dos看圖工具 瀏覽:15
微信直接加為好友 瀏覽:467
可以用微信傳送的文件app 瀏覽:294
pdf文件解析亂碼 瀏覽:479
光照無關圖代碼 瀏覽:688
Linux讀寫文件前八位 瀏覽:597
word如何繪制餅狀圖 瀏覽:172
w7系統搜索文件夾 瀏覽:618
java線程變數 瀏覽:854
蘋果電腦word是只讀文件 瀏覽:691
ps5國行備份文件大小 瀏覽:754
linux恢復刪除文件命令 瀏覽:805
win10家庭版打不開qq文件 瀏覽:794
女生來例假有哪個app比較好 瀏覽:66
調用後台介面為什麼不顯示數據 瀏覽:363
js判斷重復 瀏覽:422
聯通如何切換到網路電視 瀏覽:191
學編程的優勢哪裡靠譜 瀏覽:939

友情鏈接