[問題] 如何用VBA載入檔案,選擇特定條件的值?

看板Office作者 (過了都過了)時間4年前 (2019/09/24 19:17), 編輯推噓1(1028)
留言29則, 3人參與, 4年前最新討論串1/1
軟體:office 365 excel 版本:office 365 excel 大師們求救 我有1個表A,N個檔案,檔案內容也很多筆 請問如何用vba按一個按扭,載入一個不指定路徑的檔案(手選),而且不打開複製來源檔, 只選擇要的欄位並篩選需要的值? 如圖1 我要C欄的值,條件是F欄是Y組的才要(如圖1),然後貼到表A的B2開始,大概變成(圖2)的樣 子,感謝。 圖1 https://imgur.com/SBMfGRx
圖2 https://imgur.com/lFGKdiV
-- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.125.160.144 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1569323869.A.5D1.html

09/24 20:45, 4年前 , 1F
不開檔的話,ado range.copyfromrecordset
09/24 20:45, 1F

09/25 09:52, 4年前 , 2F
我都是開了後再close掉
09/25 09:52, 2F

09/25 17:34, 4年前 , 3F
求救,請問這樣還可以怎麼改?https://imgur.com/aC6QoVd
09/25 17:34, 3F

09/25 18:08, 4年前 , 4F
原po是要selecteditems這個屬性吧,是的話先.show,選取檔
09/25 18:08, 4F

09/25 18:10, 4年前 , 5F
案後,用個變數=.selecteditems(1)來取得所選取檔案的資料
09/25 18:10, 5F

09/25 18:12, 4年前 , 6F
(路徑和完整檔名)
09/25 18:12, 6F

09/25 18:30, 4年前 , 7F
以連結巨集來看,在迴圈前應是還要在加上開檔workbooks.
09/25 18:30, 7F

09/25 18:30, 4年前 , 8F
open的動作
09/25 18:30, 8F

09/25 18:40, 4年前 , 9F
不開檔的話也可用個儲存格,以公式='完整路徑[完整檔名]工
09/25 18:40, 9F

09/25 18:41, 4年前 , 10F
作表名稱'!儲存格的方式帶入值,再判斷該儲存格,符合,帶
09/25 18:41, 10F

09/25 18:42, 4年前 , 11F
入其他儲存格內的資料(同回文以公式),之後不要該公式的話
09/25 18:42, 11F

09/25 18:42, 4年前 , 12F
再選擇性貼上(值)
09/25 18:42, 12F

09/25 18:43, 4年前 , 13F
好難懂,我改這樣還是不能https://imgur.com/Wtn6h52
09/25 18:43, 13F

09/25 19:06, 4年前 , 14F
不是"filename"這個字串,而是.selecteditems(1)所取得的
09/25 19:06, 14F

09/25 19:06, 4年前 , 15F
字串
09/25 19:06, 15F

09/25 19:08, 4年前 , 16F
而這個字串包含了路徑和完整檔名,而workbooks()括號內要
09/25 19:08, 16F

09/25 19:08, 4年前 , 17F
的是完整檔名
09/25 19:08, 17F

09/25 19:09, 4年前 , 18F
如果不要還在那裡取出完整檔名的話,set 變數 = workbooks
09/25 19:09, 18F

09/25 19:10, 4年前 , 19F
.open,變數.worksheets(..)的方式來做
09/25 19:10, 19F

09/25 20:17, 4年前 , 20F
用最後的方式改無法,https://imgur.com/FsPAcNx
09/25 20:17, 20F

09/25 20:33, 4年前 , 21F
不是,原本巨集內就寫了workbooks.open filename:=...
09/25 20:33, 21F

09/25 20:33, 4年前 , 22F
set 變數 = workbooks.open
09/25 20:33, 22F

09/25 20:35, 4年前 , 23F
原本參引數不用括號,set時要加上
09/25 20:35, 23F

09/26 16:22, 4年前 , 24F
謝謝指導,但太深奧了,我看不懂.
09/26 16:22, 24F

09/26 16:24, 4年前 , 25F
就是workbooks.open filename:=.selecteditems(1)
09/26 16:24, 25F

09/26 16:25, 4年前 , 26F
改為set book2 = workbooks.open(filename:=.selecteditem
09/26 16:25, 26F

09/26 16:25, 4年前 , 27F
s(1))
09/26 16:25, 27F

09/26 16:25, 4年前 , 28F
而set book2 = workbooks.open這行就刪除
09/26 16:25, 28F

09/27 17:21, 4年前 , 29F
謝謝,這行過了下半段還是一堆問題
09/27 17:21, 29F
文章代碼(AID): #1TYVjTNH (Office)