Board logo

標題: [發問] 多簿多表匹配同名工作表中的相同列標題後複製 [打印本頁]

作者: shuo1125    時間: 2024-1-3 13:21     標題: 多簿多表匹配同名工作表中的相同列標題後複製

各位前輩好!
請問想針對路徑中多工作簿匹配同名工作表以及相同列標題名稱後複製到當前活頁簿中要如何做??
----------------------------------------------------------------------------------------------------------
之前准大曾分享過兩表列標題匹配複製的案例,但變成多簿多表不知如何操作....
且同工作表下可能出現相同名稱之欄位.....
詳見範例檔,匹配同工作表名以及列標題後複製到Copy工作簿。
(Copy-當前活頁簿,Wb1.Wb2.為工作簿,裡面的S1,S2,S4為預計要複製的工作表,紅色為重複之列名稱。)
謝謝大家!!
[attach]37229[/attach]
作者: Andy2483    時間: 2024-1-3 15:19

本帖最後由 Andy2483 於 2024-1-3 16:25 編輯

回復 1# shuo1125


    謝謝論壇,謝謝前輩發表此主題與範例
後學藉此帖練習字典與物件,學習方案如下,請前輩參考

Option Explicit
Sub TEST()
Dim Z, PH$, FN$, i&, C As Range, xB As Workbook, S As Worksheet
Set Z = CreateObject("Scripting.Dictionary")
For Each S In Worksheets
   For Each C In S.[1:1].SpecialCells(2): Set Z(S.Name & "|" & C) = ThisWorkbook.Sheets(S.Name).Range(C.Address): Next
Next
PH = ThisWorkbook.Path
Application.ScreenUpdating = False
Do
   If FN = "" Then FN = Dir(PH & "\*.xlsx") Else FN = Dir
   If FN = "" Then Exit Do
   'If FN = ThisWorkbook.Name Then GoTo DP
   Set xB = Workbooks.Open(PH & "\" & FN, ReadOnly:=True)
   For Each S In Worksheets
      For Each C In S.[1:1].SpecialCells(2)
         If Z.Exists(S.Name & "|" & C) = Empty Then GoTo C01
         C.EntireColumn.Copy Z(S.Name & "|" & C)
C01:  Next
   Next
   xB.Close 0
DP: Loop
End Sub
作者: Andy2483    時間: 2024-1-3 15:57

回復 1# shuo1125


執行前:
[attach]37232[/attach]

執行結果:
[attach]37233[/attach]
作者: shuo1125    時間: 2024-1-4 08:38

回復 3# Andy2483
這撰寫的效率跟準確度驚人!!!
測試無誤,感謝Andy大一直以來的指導跟幫忙...




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)