作者yuke11937 (優客)
看板Office
標題Re: [算表] Excel跨檔案搜尋資料
時間Thu Sep 10 17:49:29 2020
※ 引述《yuke11937 (優客)》之銘言:
: 軟體: Office 365
: 版本: 1908
: 我的case是 我有很多檔案(workbook1, workbook2,...)都存在同一個資料夾, 然後我希望是
: 1. 透過一個query在不打開個別檔案的情況之下 查到我要的資料
: 2. 然後複製貼上在query內的表格(在workbookA上)
: 範例來說就是
: sub 1926(workbook1) 和 sub 1927(workbook2)分別是兩個不同的檔案
: 我希望在workbookA裡面 輸入ID (ex: 1926) 後按下Query後
: 就可以自動去查找IVA和actual spending的資料並複製貼上在Query的這個新workbook.
: IVA只是資料夾內的其中一種分類
: 資料夾裡面還有avoidance和NPC總共三種分類.
: 但好消息是檔名在一開始就像我提供的一樣 已經在檔名就可以看出他的分類
: 我們可以先簡單一點 個別對IVA和avoidance寫query就好
: 能不能請問各位幫忙花一點時間幫我想一下如果是你 你會怎麼做?
感謝大家熱心回答
小弟目前想藉此機會好好把VBA學會
所以優先考量VBA的寫法, 也謝謝大大提供PowerQuery的方法!
目前卡在使用dir卻沒辦法準確指定資料夾內含有"IVA"的檔案
請問各位如果有空能給我一些建議嗎?
-------------目前嘗試的程式碼如下-----------
Sub VBA_Read_Data_Another_External_Workbook()
Dim Target_Wb As Workbook
Dim Source_Wb As Workbook
Dim xDir As String
Dim TargetPath As String
TargetPath = "C:\Users\Desktop\Pat\Test"
xDir = Dir(TargetPath & "*IVA.xls*", vbDirectory)
Do While xDir <> ""
Set Target_Wb = Workbooks.Open(xDir)
Set Source_Wb = ThisWorkbook
Target_Data = Target_Wb.Sheets(1).Cells(4, "N")
Source_Wb.Sheets(1).Cells(6, "C") = Target_Data
Target_Data = Target_Wb.Sheets(1).Cells(5, "N")
Source_Wb.Sheets(1).Cells(6, "D") = Target_Data
Target_Data = Target_Wb.Sheets(1).Cells(4, "O")
Source_Wb.Sheets(1).Cells(7, "C") = Target_Data
Target_Data = Target_Wb.Sheets(1).Cells(5, "O")
Source_Wb.Sheets(1).Cells(7, "D") = Target_Data
Source_Wb.Save
Target_Wb.Save
Target_Wb.Close False
xDir = Dir()
MsgBox "Task Completed"
Loop
End Sub
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.170.232.175 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Office/M.1599731371.A.E63.html
1F:→ soyoso: 檔名含有"IVA","*IVA*.xls*" 09/10 17:51