Excel VBA之FSO-2.6总结篇
Excel VBA之FSO-2.6总结篇
前景提要
很巧合,今天是周末,正好也碰到了我们的第二系列收尾的这天,本系列重要讲述的就是VBA中FSO的运用,通过本系列的学习,相信大家已经对于FSO有了一定的了解了,在VBA的世界中,FSO主要用于文件夹方面的操作,在日常的工作中,当我们碰到文件夹方面的操作的时候,首先想到的应该就是FSO,FSO可以实现创建文件,删除文件夹,判断文件夹是否存在,同时可以操作文件夹的移动,复制,可以获得文件夹的各种属性,参数,功能是非常的强大的,细心的童鞋应该已经留意到了,在我们第一系列的分享中,最后几篇即用型的代码中,也有使用关于一些FSO的方法,在文章的最后,将会附上相关的链接,方便大家回顾。
来回顾一下本系列,首先我们先了解了下,什么是FSO,他在VBA中是属于ADO范畴的,并不能直接使用的,需要通过声明,然后才可以使用的,而在使用的过程中,我们有两种方法来绑定,一种是前期绑定,通过工具栏来实现的,另外一种方式就是通过后期绑定的,在这里小编推荐大家使用后期绑定的方法来使用FSO,因为我们的代码并不一定是我们使用的,当我们将自己的代码分享给其他同时使用的时候,可能其他同事的电脑并按照相关的配置,它的电脑可能就没有办法来使用FSO方面的功能了,这样的代码通用性非常的差,如果是使用后期绑定的话,不管是谁的电脑都可以使用,只要配置齐全,安装的是完整的office就可以了。
最开始学习的是通过FSO来创建文件夹,和第一系列相对比,在创建文件夹的过程中,FSO更加的严谨,它可以直接通过FolderExists(filename)来判断同名文件夹是否存在,如果存在的话,我们可以通过DeleteFolder(filename)的方法来删除同名文件夹,之后再通过createfolder(filename)的方法来创建文件夹,相对于第一系列的mkdir()函数来说,功能全面了很多。
当然创建文件夹之后呢,我们可能不仅仅是创建一个空白文件夹,文件夹里面肯定有很多的文件夹,可能在我们创建文件夹的时候,为了图使用的方便,放在了桌面,我们都知道重要文件不应该放在桌面的,这样万一碰到重装系统等操作的时候,重要的文件就会完全丢失了,那么怎么办呢?两种选择,第一:我们可以通过FSO的CopyFolder的方法将文件夹从桌面位置复制到到我们想要的位置上,这样就是先了文件夹的复制,如果我不想要复制怎么办,那也可以选择移动,通过FSO的MoveFolder的方法,就可以文件夹移动到我们想要的位置了,
文件夹的移动和复制,看起来功能和效果是差不多的,但是两者之间还是有一定的区别的,移动之后,原始位置并不会存在这个文件夹了,而复制的话,两个地方都会存在相同的文件夹,如果数据比较大的话,可能会造成内存空间的紧张,大家在使用的时候,根据自己的实际场景来选择。
FSO仅仅可以用来操作文件夹嘛?当然不是,它还可以用来创建TXT文件,TXT文件在日常的工作中是非常的常用的,一些并不算是太大的数据,或者并不算是很重要的数据,都是放置在txt文件中,VBA可以实现txt的读取和写入,在后面我们会单独说这个功能,那么想要一个txt数据,自然是先要创建一个txt文件了,那么FSO可以实现嘛?CreateTextFile(path)完全可以满足我们的要求。
最后我们照旧分享了一些关于FSO方面的即用型的代码,为什么我一直都喜欢在最后分享一些即用型的代码呢?其实我在之前也是说过了,VBA的世界是非常的大的,虽然现在很多的程序员看不起VBA,但是在日常的工作中,尤其是在操作office这方面,VBA还是有很大的优势的,python的pandas虽然也可以达到这样的效果,但是在理解和使用上面,VBA还是简单一点,但是我们可能并没有太多的时间去深入学习VBA的方方面面的知识,就算是学了不一定用到,久而久之就忘记了,也没有这个必要,所以我也是会分享一些即用型的代码,方便大家拿来就可以使用,不需要太深入的理解,稍微更换一点关键代码和字段,就可以满足我们工作中的需求了,这也是提升效率的一种方法。
总结
==========================================================================
OK ,关于FSO的最后一篇的总结就到这里了,下一系列我们将会进入VBA中各种函数的介绍和使用了,VBA的函数有很多,当然我们不可能面面俱到,一个不拉的全部讲完,我们更多的还是侧重于日常工作中比较常用的一些函数来使用,函数的学习就相对比较的枯燥了,不过打好基础还是非常的重要的,后面的很多的代码都是通过这些一个个的函数来完成的,好了,今天就到这里,祝大家周末愉快,明晚19:00,我们准时再见。
==========================================================================
本人已经打算长期分享一些网络搜集的各种VBA知识,如果大家有问题也可以提出来共同解决,一起进步,毕竟VBA的世界还是很大的。