- 系统环境:Windows 10
- Excel:2016版本
这个系列集锦一些常用的功能模块,在一些项目中会穿插应用
功能模块中又包括很多子模块,本文涉及的是:文件及文件夹
今天讲讲一次读取全部文件和写入文件
Part 1:文件读取
- 将文件全部读出,并生成一个数组,数组的每个元素是文件的一行
有两种方法,方法1
Open WenjianAddr1 For Input As #1 TXTContent1 = Split(StrConv(InputB(LOF(1), #1), vbUnicode), vbCrLf)
- 以vbCrLf作为分隔符,数组的每一个元素为文本的一行
- 其中vbCrLf表示Chr(13) + Chr(10),回车符与换行符结合
- 其中LOF(1),返回该文件的大小,以字节为单位
- InputB(LOF(1), #1),返回整个文本
- StrConv,将文本转换为Unicode
- Split,以vbCrLf将整个文本进行分割,返回数组
有两种方法,方法2
Const ForReading = 1, ForWriting = 2, ForAppending = 8, TristateTrue = -1 Set strNewFileOpen = (WenjianAddr1, ForReading, TristateTrue) HangContent = TXTContent2 = Split(HangContent, vbCrLf)
- 结合,使用ReadAll获取整个文本,再以Split分割
Part 2:文件写入
有两种方法,方法1
Const ForReading = 1, ForWriting = 2, ForAppending = 8, TristateTrue = -1 Set strNewFileOpen = (WenjianAddr2, ForAppending, TristateTrue) ("test1")
- 结合,使用WriteLine
- 使用完毕后,直接关闭即可,无需另外保存,文件自动保存
有两种方法,方法2
Open WenjianAddr2 For Append As #2 Write #2, "abc", "1" Print #2, "abc", "1" Close #2
- 结合Open,使用Write或者Print
- 使用Write,则文本中字符串中仍然含有双引号
- 使用Print,则文本中只有字符串信息无双引号
- 每次只写一行
- 一行若写入多个信息,Write则自动增加逗号,而Print采用空格区分
- 更多的区别,欢迎有研究的读者留言
图1 执行结果
以上,为本次的介绍内容,下回见。
本文首发于微信公众号:Excel高效办公之VBA。排版和细节略作修改,发于头条