分享

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

 枫叶晚秋 2010-11-19
个人资料守望麥田的Excel & VBA照片日志列表

     

    11月13日

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

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

        一、如何创建FileSystemObject对象

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

        示例:

    Dim fso As Object
                        Set fso=CreateObject("Scripting.FileSystemObject")

        二、FileSystemObject主要方法介绍

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

        语法:object.CreateTextFile(filename[,overwrite[,unicode]])

    参数 说明
    object 必需的。为一个FileSystemObject对象的名字
    filename 必需的,一个带路径的字符串表达式,为创建的文件
    overwrite 可选的。Boolean值,如果为True表示覆盖已存在的文件,False表示不能覆盖。默认值为False。
    unicode 可选的。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("Scripting.FileSystemObject")
                        Set sFile = FSO.CreateTextFile("C:\FSOTest\TestFile.txt",True)
                        sFile.WriteLine ("CreateTextFile Test")
                        sFile.Close
                        Set sFile = Nothing
                        Set FSO = Nothing
                        End Sub

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

       语法:object.DeleteFile(filespec[,force])

    参数 说明
    object 必需的。为一个FileSystemObject对象
    filespec 必需的。要删除文件的名字。可以在最后的路径部件中包含通配符
    force 可选的。Boolean值,如果要删除具有只读属性设置的文件,则为True。如果不能删除具有只读属性设置的文件,则为False。默认值为False

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

    Sub DeleteFile()
                        Dim fso As Object
                        Set fso = CreateObject("Scripting.FileSystemObject")
                        fso.DeleteFile ("C:\FSOTest\TestFile.txt")
                        End Sub

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

       语法:object.FileExists(filespec)

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

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

    Sub FileExist()
                        Dim fso As Object, blnExist As Boolean
                        Set fso = CreateObject("Scripting.FileSystemObject")
                        blnExist = fso.FileExists("C:\FSOTest\testfile.txt")
                        MsgBox blnExist
                        End Sub

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

        语法:object.OpenTextFile(filename[,iomode[,create[,format]]])

    参数 说明
    object 必需的。始终是一个 FileSystemObject 的名字
    filename 必需的。为一个文件名,包含完整路径说明
    iomode 可选的。表示输入/输出方式。可为两个常数之一:ForReadingForAppending
    create 可选的。Boolean 值,它表示如果指定的 filename 不存在是否可以创建一个新文件。如果创建新文件,其值为 True。若不创建文件其值为 False。缺省值为 False
    format 可选的。三种 Tristate 值之一,用于指示打开文件的格式。如果省略,则文件以 ASCII 格式打开。

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

    常数 说明
    ForReading 1 打开一个只读文件。不能对此文件进行写操作
    ForWriting 2 打开一个可读写操作的文件,并删除原有文本内容
    ForAppending 8 打开一个文件并写到文件的尾部

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

    常数 说明
    TristateUseDefault -2 使用系统缺省打开文件
    TristateTrue -1 以Unicode格式打开文件
    TristateFalse 0 以ASCII格式打开文件

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

    Sub OpenTextFile()
                        Dim fso As Object, sFile As Object
                        Const ForReading = 1, ForWriting = 2, ForAppending = 8, TristateFalse = 0
                        Set fso = CreateObject("Scripting.FileSystemObject")
                        Set sFile = fso.OpenTextFile("C:\FSOTest\testfile.txt", ForAppending, TristateFalse)
                        sFile.Write "OpenTextFile Test"
                        sFile.Close
                        Set fso = Nothing
                        Set sFile = Nothing
                        End Sub

    下一节中,我们将介绍FileSystemObject对象返回的TextStream对象的属性与方法,并示例如何对文本文件进行读写操作。

    Windows Live 用户
    评论 

    引用通告

    此日志的引用通告 URL 是:
    http://excelvba.spaces./blog/cns!C8DD59DD41646C63!157.trak
    引用此项的网络日志
    ');}} //]]>

      本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
      转藏 分享 献花(0

      0条评论

      发表

      请遵守用户 评论公约

      类似文章 更多