作者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/cn.aspx?n=bbs/Office/M.1599731371.A.E63.html
1F:→ soyoso: 档名含有"IVA","*IVA*.xls*" 09/10 17:51