導航:首頁 > 數據分析 > 怎麼用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匯總三個匯總表數據相關的資料

熱點內容
ps入門必備文件 瀏覽:348
以前的相親網站怎麼沒有了 瀏覽:15
蘋果6耳機聽歌有滋滋聲 瀏覽:768
怎麼徹底刪除linux文件 瀏覽:379
編程中字體的顏色是什麼意思 瀏覽:534
網站關鍵詞多少個字元 瀏覽:917
匯川am系列用什麼編程 瀏覽:41
筆記本win10我的電腦在哪裡打開攝像頭 瀏覽:827
醫院單位基本工資去哪個app查詢 瀏覽:18
css源碼應該用什麼文件 瀏覽:915
編程ts是什麼意思呢 瀏覽:509
c盤cad佔用空間的文件 瀏覽:89
不銹鋼大小頭模具如何編程 瀏覽:972
什麼格式的配置文件比較主流 瀏覽:984
增加目錄word 瀏覽:5
提取不相鄰兩列數據如何做圖表 瀏覽:45
r9s支持的網路制式 瀏覽:633
什麼是提交事務的編程 瀏覽:237
win10打字卡住 瀏覽:774
linux普通用戶關機 瀏覽:114

友情鏈接