![](/img/trans.png)
[英]Excel VBA: How to consolidate specific worksheets in the same workbook?
[英]How to extract specific range within excel worksheets and consolidate
我正在嘗試在 excel 中自動執行報告任務,我需要將文件夾中的所有工作簿合並到一個工作表中,我遵循了 danwagner 提供的指南: https ://danwagner.co/how-to-combine-multiple-excel -workbooks-into-one-worksheet-with-vba/
但是由於數據的非結構化性質,它工作得很好,我沒有得到想要的結果。
基本上,我希望 excel 宏只選取特定范圍的值,我正在定義上一行和列數,但不知道如何讓 excel 嚴格復制/提取每個工作表中的表格(每個工作簿都有表的起始行和列數相同,但表的底行不同)。
我需要從每個工作簿中抓取的表格看起來像這樣,每個工作簿中只有一個工作表可以合並在一起:
任何提示將不勝感激,順便說一句,我相信需要在指南中的宏的這些行上進行編輯,但我一直遇到錯誤:
lngSrcLastCol = LastOccupiedColNum(wksSrc)
With wksSrc
Set rngSrc = .Range(.Cells(1, 1), .Cells(lngSrcLastRow, _
lngSrcLastCol))
End With
我知道這不是您要的答案,但也許 PowerQuery 在這里效果更好?
如果您願意,可以嘗試以下操作:
打開新工作簿
轉到數據功能區
選擇“獲取數據”->“來自文件”->“來自文件夾”
導航到存放文件的文件夾
出現提示時選擇“轉換數據”
如有必要,將過濾器設置為僅抓取您想要的文件
在最左側的[Content] 列中,單擊帶有兩個向下箭頭的圖標
選擇您的表/選項卡並單擊“確定” (如果您的工作簿中存在多個表或選項卡,系統將提示您導航到您選擇的表/選項卡的選項,我喜歡單擊復選框“跳過文件”有錯誤”,但這取決於您)
您現在將應用一系列步驟來獲取您想要的數據,在您的情況下並給出您的示例,我將按照以下方式做一些事情:
'刪除行' -> '刪除頂行' -> 行數 = 4
'使用第一行作為標題' (確保你先刪除了頂行)
[Column2] 上的“過濾器”以刪除空值(假設第 2 列在目標詳細信息下方的行中永遠沒有文本,並且它始終具有與數據拉取的最后所需行匹配的數據)
現在您應該擁有您的數據,根據您可能想要執行的任何格式需求或其他過濾器,進行您可能想要的任何其他編輯
選擇“關閉並加載” (所有文件將應用相同的邏輯步驟並將最終結果構建到一個表中)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.