[问题] 如何用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