了解了如何遍历文件夹获取每个文件的名字,属性等等。 本期我们分享其他关于FSO的应用:
顾名思义,文件的复制,文件夹的复制。 例如: 有 A, B 两个文件夹,A文件夹里面有8000文件,但在其中有300你想要的文件,并且你要把这些文件复制到B文件夹中去。 当然,如果你需要复制的文件很少,十个八个的,直接搜索,复制粘贴就好了,但是,你需要复制的文件很多的话,你再一个个搜索,想必累死也弄不完吧,这就需要我们用工具来完成,用bat来完成也是不错的选择,如果只是进行这么一次,单次的需求。以后我们会详细的说明,会用vba 结合dos命令来完成一些需求。 首先,我们先想想大概的过程,根据给定的list中的文件名,做个循环,将文件从A复制到B,界面呢,需要一个list的地方就够了。 例如下图,左侧A列可以存放这些文件名的list,根据需要可以增加清除list的方法,可以用我们之前分享的FileDialog功能增加文件夹的选择,来填充copy路径,可以增加信息框来显示执行的进度,状态等等,可用statusbar代替。 最主要的就是A列的list。 【代码】 我们先看下主要的Main过程: 要点1: 之前没详细说明的获取非空值最大行的方法
注:当然如果你的行数有可能大于1000你就不能像上面这么写了,写个最大的值就好了。 要点2: 事前check
对于必要的参数要进行一些check,不然不选择路径的情况下就会报错 要点3: CopyFile
前面是指定到文件名的路径,后面是出力的路径 如果是文件夹的复制就把CopyFile换成CopyFolder,后面的出力路径要追加'& file ' 同入力路径一样的。 注:上面的file是带文件后缀的,例如,aaa.txt,bbb.xls,ccc.ppt。。。 这个代码还有问题,对于list中的文件名,在文件夹A中一定存在,上面的代码不会出错,那么如果list中的文件,在A中根本不存在,那么在CopyFile的时候就会报错,代码要严谨。 那么如何判断list中的文件在A文件夹中是否存在呢? 下期分享《FileExists》 PS:还在为工作效率上不来而烦恼嘛,快来加入我们吧。 |
|
来自: L罗乐 > 《VBA基础入门教程》