
大家好,我们今日继续讲解VBA代码解决方案的第77讲内容:如何导出文件,形成一个文本文件,如果需要将工作表中的数据保存为文本文件,可以创建一个文本文件用于保存数据。
应用于FileSystemObject对象的CreateTextFile方法创建一个指定的文件并且返回一个用于该文件读写的TextStream对象,语法如下:
object.CreateTextFile(filename[, overwrite[, unicode]])
参数a) object是必须的,FileSystemObject对象的名字。
b) filename是必须的,需要创建的文件名称。
c) overwrite是可选的,表示是否覆盖已存在文件。如果可被覆盖其值为True,其值为False时不能覆盖,如果省略,则已存在文件不能覆盖。
d) unicode是可选的,表示文件是作为一个Unicode文件创建的还是作为一个ASCII文件创建的。如果作为一个Unicode文件创建,其值为True,作为一个ASCII 文件创建,其值为False,如果省略,则认为是一个ASCII文件。
使用CreateTextFile方法创建文本文件,如下面的代码所示。
Sub MyCreText()
Dim MyFile As Object
Dim myStr As String
Dim j As Integer, i As Integer
Set MyFile = CreateObject("Scripting.FileSystemObject") _
.CreateTextFile(ThisWorkbook.Path & "" & "人员表单.txt", True)
For i = 1 To Range("A65536").End(xlUp).Row
myStr = ""
For j = 1 To Range("IV"& i).End(xlToLeft).Column
myStr = myStr & Cells(i, j) & ","
Next
myStr = Left(myStr, (Len(myStr) - 1))
MyFile.WriteLine (myStr)
Next
MyFile.Close
Set MyFile = Nothing
End Sub
代码解析:MyCreText过程使CreateTextFile方法创建一个指定名称的文本文件并将工作表数据写入到文件内。
第5、6行代码使用CreateObject函数创建FileSystemObject对象并将该对象赋给变量MyFile后使用CreateTextFile方法创建一个指定名称的文本文件。
第7行代码逐行读取工作表数据。
第8行代码清空字符串变量myStr的内容,用来保存下一行的数据。
第9行代码遍历当前行的所有单元格。
第10行代码将当前行的所有单元格保存到字符串变量myStr中并以逗号进行分隔。
第12行代码去除保存在字符串变量myStr中当前行数据的最后一个逗号。
第13行代码使用WriteLine方法将当前行数据写入到创建的文本文件。
备注:应用于TextStream对象的WriteLine方法写入一个指定的字符串和换行符到一个TextStream文件中,语法如下:object.WriteLine([string])其中参数object是必须的,TextStream对象的名字。参数string是可选的,要写入文件的正文。如果省略,写入一个换行符。
第15行使用Close方法关闭打开的文本文件。
代码截图:


打开文件看看:

今日内容回向:
1 如何导出文件,并形成一个文本文件呢?
2 object.CreateTextFile 的意义是什么?
欢迎大家到我的自媒体平台沟通交流:个人微信号“NZ9668”、头条号“VBA专家”、百家号“VBA与GO语言”、微信公众号“NZ_9668”、社群“VBA学习交流群”。
这一系列文章是根据我多年的工作经验编写的,也是一直在利用的工具,非常方便好用。现在分享出来,希望能对同样在职场打拼的朋友有些许的帮助,使你的工作更加高效、流畅。朋友们有问题请随时提出来,我们一起探讨学习。对数据分析有需要的公司、组织或个人可以直接联系我,及时为你提供专业的定制技术支持。
工作不是一切。工作是每个人安身立命、成长发展的基础。但你要知道工作是永远也做不完的,时间会抹去很多问题。多关注自己、家人和朋友,这些才是我们生活中更为重要的东西。