「Excel-VBA」功能模块-文件及文件夹-04-文件全读取和写入

  • 系统环境:Windows 10
  • Excel:2016版本


这个系列集锦一些常用的功能模块,在一些项目中会穿插应用

功能模块中又包括很多子模块,本文涉及的是:文件及文件夹


今天讲讲一次读取全部文件和写入文件



Part 1:文件读取

  • 将文件全部读出,并生成一个数组,数组的每个元素是文件的一行

有两种方法,方法1

Open WenjianAddr1 For Input As #1
TXTContent1 = Split(StrConv(InputB(LOF(1), #1), vbUnicode), vbCrLf)
  1. vbCrLf作为分隔符,数组的每一个元素为文本的一行
  2. 其中vbCrLf表示Chr(13) + Chr(10),回车符与换行符结合
  3. 其中LOF(1),返回该文件的大小,以字节为单位
  4. InputB(LOF(1), #1),返回整个文本
  5. StrConv,将文本转换为Unicode
  6. Split,以vbCrLf将整个文本进行分割,返回数组


有两种方法,方法2

Const ForReading = 1, ForWriting = 2, ForAppending = 8, TristateTrue = -1
Set strNewFileOpen = fso.OpenTextFile(WenjianAddr1, ForReading, TristateTrue)
HangContent = strNewFileOpen.ReadAll
TXTContent2 = Split(HangContent, vbCrLf)
  • 结合fso.OpenTextFile,使用ReadAll获取整个文本,再以Split分割



Part 2:文件写入

有两种方法,方法1

Const ForReading = 1, ForWriting = 2, ForAppending = 8, TristateTrue = -1
Set strNewFileOpen = fso.OpenTextFile(WenjianAddr2, ForAppending, TristateTrue)
strNewFileOpen.WriteLine ("test1")
strNewFileOpen.Close
  1. 结合fso.OpenTextFile,使用WriteLine
  2. 使用完毕后,直接关闭即可,无需另外保存,文件自动保存

有两种方法,方法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。排版和细节略作修改,发于头条

举报
评论 0