admin 管理员组

文章数量: 887021


2023年12月17日发(作者:reconstructed)

VBA使用FileSystemObject将读取或写入文本文件(一)

有时,我们需要将一个文本文件中的数据读取到Excel单元格中,或将指定单元格的内容按指定的格式导出到文本文件中,这时,我们就需要使用stemObject对象来进行操作。在接下来的几篇里我们介绍如何使用FileSystemObject对象操作文本文件的。工欲善其事,必先利其器,那么我们就先花几篇文章来详细介绍下FileSystemObject对象。

一、如何创建FileSystemObject对象

在VBA中,是通过CreateObject函数返回FileSystemObject对象。

示例:

Dim fso As Object

Set fso=CreateObject("stemObject")

二、FileSystemObject主要方法介绍

1、CreateTextFile方法:用于创建一个指定文件名,并返回一个可操作的TextStream对象。

语法:TextFile(filename[,overwrite[,unicode]])

参数

object

filename

overwrite

unicode

说明

必需的。为一个FileSystemObject对象的名字

必需的,一个带路径的字符串表达式,为创建的文件

可选的。Boolean值,如果为True表示覆盖已存在的文件,False表示不能覆盖。默认值为False。

可选的。Boolean值,表示文件是作为一个Unicode文件创建的还是作为一个ASCII文件创建的。如果为True则表示作为Unicode文件创建,False表示作为ASCII文件创建。默认值为False。

示例1:在C:FSOTest中创建一个名为testFile的文本文件,并写入一行“CreateTextFile Test”:

Sub CreateFile()

Dim sFile As Object, FSO As Object

Set FSO = CreateObject("stemObject")

Set sFile = TextFile("C:",True)

ine ("CreateTextFile Test")

Set sFile = Nothing

Set FSO = Nothing

End Sub

2、DeleteFile方法:用于删除一个指定的文件。如果指定的文件不存在,则返回一个错误信息。

语法:File(filespec[,force])

参数

object

filespec

force

说明

必需的。为一个FileSystemObject对象

必需的。要删除文件的名字。可以在最后的路径部件中包含通配符

可选的。Boolean值,如果要删除具有只读属性设置的文件,则为True。如果不能删除具有只读属性设置的文件,则为False。默认值为False

示例2:删除示例1中创建的文本文件。

Sub DeleteFile()

Dim fso As Object

Set fso = CreateObject("stemObject")

File ("C:")

End Sub

3、FileExists方法:判断指定的文件是否存在。如果存在,则返回True,若不存在,则返回False

语法:ists(filespec)

参数

object

filespec

说明

必需的。为一个FileSystemObject对象

必需的。要确定是否存在的文件名。如果认为文件不在当前文件夹中,必须提供一个带完整的路径说明。

示例3:判断“C:FSOTest”中是否存在文件“”:

Sub FileExist()

Dim fso As Object, blnExist As Boolean

Set fso = CreateObject("stemObject")

blnExist = ists("C:")

MsgBox blnExist

End Sub

4、OpenTextFile方法:打开一个指定的文件并返回一个TextStream对象,该对象可能于对文件进行读操作或追加操作。

语法:xtFile(filename[,iomode[,create[,format]]])

参数

object

filename

iomode

create

format

说明

必需的。始终是一个 FileSystemObject 的名字

必需的。为一个文件名,包含完整路径说明

可选的。表示输入/输出方式。可为两个常数之一:ForReading或 ForAppending。

可选的。Boolean 值,它表示如果指定的 filename

不存在是否可以创建一个新文件。如果创建新文件,其值为 True。若不创建文件其值为 False。缺省值为 False。

可选的。三种 Tristate 值之一,用于指示打开文件的格式。如果省

略,则文件以 ASCII 格式打开。

参数iomode可以设置为以下值:

常数

ForReading

ForWriting

ForAppending

1

2

8

说明

打开一个只读文件。不能对此文件进行写操作

打开一个可读写操作的文件,并删除原有文本内容

打开一个文件并写到文件的尾部

参数format可以设置为以下值:

常数

TristateUseDefault

TristateTrue

TristateFalse

-2

-1

0

说明

使用系统缺省打开文件

以Unicode格式打开文件

以ASCII格式打开文件

示例4:本例说明了使用OpenTextFile方法打开文件,并添加文字“OpenTextFile

Test”:

Sub OpenTextFile()

Dim fso As Object, sFile As Object

Const ForReading = 1, ForWriting = 2, ForAppending = 8, TristateFalse

= 0

Set fso = CreateObject("stemObject")

Set sFile = xtFile("C:",

ForAppending, TristateFalse)

"OpenTextFile Test"

Set fso = Nothing

Set sFile = Nothing

End Sub


本文标签: 文件 打开 指定 删除 对象