前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VBA调用外部对象02:FileSystemObject——操作文本文件

VBA调用外部对象02:FileSystemObject——操作文本文件

作者头像
xyj
发布2020-07-28 11:14:04
7160
发布2020-07-28 11:14:04
举报
文章被收录于专栏:VBA 学习

1、写入:

FileSystemObjectc操作文本文件是通过OpenTextFile的函数,它能够返回一个TextStream对象,TextStream对象封装好了对文本文档的一些常用的操作,让我们试试如何来写入一个文本文档:

代码语言:javascript
复制
Sub TestFSOWrite()
    Dim fso As FileSystemObject
    '创建对象
    Set fso = New FileSystemObject
    
    Dim ts As TextStream
    '创建TextStream,并使用IOMode ForWriting即只读模式,Create = True, 文件不存在的时候会自动创建
    Set ts = fso.OpenTextFile(ThisWorkbook.path & "\test.txt", ForAppending, True)
    '写入
    ts.Write "test"
    '关闭
    ts.Close
    
    Set ts = Nothing
    Set fso = Nothing
End Sub

前面说到过,这种封装好了的对象,一般使用步骤都是定义对象变量-创建对象-使用对象的方法、属性等。上面就是首先创建FileSystemObject对象,然后调用FileSystemObject对象的函数OpenTextFile创建TextStream对象,再使用TextStream对象的Write方法写入文本。

相对于文件操作——写入里介绍的打开Open-写入Put-关闭Close三步,使用起来更好理解。

我们是使用TextStream这个对象来操作文本文档的,那么,我们可以直接用New关键字来创建它吗?如果你尝试过了,应该发现这是做不到的,如果接触到了类模块,我们会发现类模块里有一个属性叫做Instancing,默认是1-Private,还有1个是2-PublicNotCreatable(字面理解:公开但是不能被创建),我们可以理解TextStream就是类似类模块Instancing属性设置成了2-PublicNotCreatable。

2、读取:

和读取也是差不多,定义对象变量-创建对象-使用对象的方法、属性:

代码语言:javascript
复制
Sub TestFSORead()
    Dim fso As FileSystemObject
    '创建对象
    Set fso = New FileSystemObject
    
    Dim ts As TextStream
    '创建TextStream,并使用IOMode ForWriting即只读模式,Create = True, 文件不存在的时候会自动创建
    Set ts = fso.OpenTextFile(ThisWorkbook.path & "\test.txt")
    
    Dim str As String
    str = ts.Read(2)
    Debug.Print str
    '关闭
    ts.Close
    
    Set ts = Nothing
    Set fso = Nothing
End Sub

OpenTextFile后面的参数都可以省略,我们使用Read方法读取2个字符,在立即窗口中你应该能够看到输出te。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 VBA 学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档