Excel VBA之FSO-2.4创建文本文件

Excel VBA之FSO-2.4创建文本文件

前景提要

在之前我们也是接触了一些关于FSO的运用,在VBA的世界中,FSO在文件方面的操作还是非常的强大的,日常的工作中,我们很多的数据并不一定存在在excel,有时候还会存在在文本文件中,就是TXT文件,文本文件的好处就是读取方便,并且内存不会很大,其实VBA也是可以操作文本文件的,VBA可以创建文本文件,同时可以读取文件文件,写入文本文件,这些是后话,今天我们先说下如何通过VBA创建一个文本文件,因为他需要用到FSO,至于之后的读取和写入,我们后面单独开一系列来说。

思路

其实创建文本文件的思路和之前创建文件夹的思路是一致的,给一个路径之后,就可以直接创建了,当然我们还是需要判断下当前文件夹中是否存在同名的文件,这里我们插入一个知识点,如何通过我们之前学过的dir()函数来判断当前文件夹中是否存在相同的文件,大家可以和FSO的方法相互对比下,找到自己适合的方法。

上代码

Sub test()Dim FileName$, fso As ObjectSet fso = CreateObject("Scripting.FileSystemObject")FileName = "D:\测试文本.txt"If Len(Dir(FileName)) > 0 Then fso.deletefile (FileName) Set txx = fso.CreateTextFile(FileName, True) Else Set txx = fso.CreateTextFile(FileName, True)End IfEnd Sub

效果如图:

执行操作前:

原文件夹并没有txt文件

执行操作之后:

很明显,代码达到了我们的要求。

代码解析

首先先声明一个FSO对象,这是利用FSO的起手式,在之前我们已经讲过很多次了,这个就不做描述

然后进入我们今天的第一个知识点,如何通过dir()函数来判断文件中是否存在同名文件,首先我们回忆下之前学习过的dir()的用法,主要是使用在遍历文件夹的时候使用的,如果忘记的话,可以拉到最下面,有相关的历史文章的链接,今天我们在升华一下,dir(pathname)简单的说,就是判断这样的路径是否存在,我们可以用来判断文件或者文件夹是否存在,如果存在的话,会返回当前文件的文件名,是个字符串,这里我们可以使用len()函数来判断返回的字符长度,如果大于0,证明返回的并不是一个空字符串,就证明文件是存在的。我们来验证下

我们先删除我们之前验证的文件,然后重新执行下程序

这里我们可以看到如果文件不存在,返回的是一个空值,那么字符长度肯定不会大于0,那么就可以直接创建文本文件了,如果存在呢?

这里我们可以看到,如果存在的话,返回的是一个字符串,我们可以通过判断文本的长度了,既然长度大于零,就可以直接执行后面的创建命令了。

好了,再来说下如何通过FSO创建文本文件,其实很简单,一句话

Set txx = fso.CreateTextFile(FileName, True)

这里大家要注意前面一定要加上一个set。当然如果存在相同的文件也不怕,我们可以利用我们上节学习的删除文件的方法删除原来的历史数据即可。

fso.deletefile (FileName)

完整代码加注释

Sub test()Dim FileName$, fso As ObjectSet fso = CreateObject("Scripting.FileSystemObject") '声明一个FSOFileName = "D:\测试文本.txt" '设置文件名和路径If Len(Dir(FileName)) > 0 Then '通过dir()函数来判断文件是否存在 fso.deletefile (FileName) '存在就删除元文件 Set txx = fso.CreateTextFile(FileName, True) '在创建新的文件 Else Set txx = fso.CreateTextFile(FileName, True)End IfEnd Sub

总结

==========================================================================

今天主要学习了通过FSO来创建文本文件的方法,同时也是针对我们之前学习的DIR()函数的一个升华,通过的通过dir()函数来实现 文件是否存在的判断,相对于使用FSO的方法,其实作用和效果是一样的,初学者如果为了方便记忆的话,可以选择先记住dir()的方法,之后再慢慢尝试使用FSO的方法,没有最好的方法,只有最适合自己的方法,

==========================================================================

(0)

相关推荐