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

作者: hyvi (過了都過了)   2019-09-24 19:17:44
軟體: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
作者: soyoso (我是耀宗)   2019-09-24 20:45:00
不開檔的話,ado range.copyfromrecordset
作者: ptguitar (佩蒂吉他)   2019-09-25 09:52:00
我都是開了後再close掉
作者: hyvi (過了都過了)   2019-09-25 17:34:00
求救,請問這樣還可以怎麼改?https://imgur.com/aC6QoVd
作者: soyoso (我是耀宗)   2019-09-25 18:08:00
原po是要selecteditems這個屬性吧,是的話先.show,選取檔案後,用個變數=.selecteditems(1)來取得所選取檔案的資料(路徑和完整檔名)以連結巨集來看,在迴圈前應是還要在加上開檔workbooks.open的動作不開檔的話也可用個儲存格,以公式='完整路徑[完整檔名]工作表名稱'!儲存格的方式帶入值,再判斷該儲存格,符合,帶入其他儲存格內的資料(同回文以公式),之後不要該公式的話再選擇性貼上(值)
作者: hyvi (過了都過了)   2019-09-25 18:43:00
好難懂,我改這樣還是不能https://imgur.com/Wtn6h52
作者: soyoso (我是耀宗)   2019-09-25 19:06:00
不是"filename"這個字串,而是.selecteditems(1)所取得的字串而這個字串包含了路徑和完整檔名,而workbooks()括號內要的是完整檔名如果不要還在那裡取出完整檔名的話,set 變數 = workbooks.open,變數.worksheets(..)的方式來做
作者: hyvi (過了都過了)   2019-09-25 20:17:00
用最後的方式改無法,https://imgur.com/FsPAcNx
作者: soyoso (我是耀宗)   2019-09-25 20:33:00
不是,原本巨集內就寫了workbooks.open filename:=...set 變數 = workbooks.open原本參引數不用括號,set時要加上
作者: hyvi (過了都過了)   2019-09-26 16:22:00
謝謝指導,但太深奧了,我看不懂.
作者: soyoso (我是耀宗)   2019-09-26 16:24:00
就是workbooks.open filename:=.selecteditems(1)改為set book2 = workbooks.open(filename:=.selecteditems(1))而set book2 = workbooks.open這行就刪除
作者: hyvi (過了都過了)   2019-09-27 17:21:00
謝謝,這行過了下半段還是一堆問題

Links booklink

Contact Us: admin [ a t ] ucptt.com