在处理数据时,VBA可以对文本文件进行数据处理,包括读取文本文件,向文本文件写入或者追加数据。
本实例就是将Excel中的数据写入到txt文件中,
本节学习TXT文件的写入,首先学习一些基础语句。
方法:
Open 文件名 for 打开方式 as #文件编
其中文件编号是为了方便后续在代码中简写文件名;
打开方式:
Output:可以读,也可以写,但总会把原来的同名文件删除,再新建一个。
向文件中写入数据:
write #:向文件中写入值,值用引号引起来。如果想在同一行中继续写入,可以在前一次写时结尾添加“;”分号。
Print #:向文件中写入值,如果想在同一行中继续写入,可以在前一次写时结尾添加“;”分号。
Case:需要将工作表Raw Data中的EI列的2至35行数据和136行和136列数据写入到指定路径下txt文档中,其中数据包含字符串和数字以及空单元格。
Sub Data_Output()
Dim Map_i as integer,M as integer, N as inetger
Dim shRaw as object '定义变量类型
Bookfile = ThisWorkbook.Name
Set shRaw = Workbooks(Bookfile).Sheets("Raw Data")
FilePath=D:\New folder
filename = FilePath & "\" & Date$ & ".txt" '创建txt文件名称和路径
Open filename For Output As #1 '写入到txt文档中
For Map_i = 0 To 33
Print #1, shRaw.Cells(2 + Map_i, "EI") '将工作表中的EI列的2至35行数据写入txt文档
Next Map_i
For M = 0 To 136
Line_Map = ""
For N = 0 To 136
If shRaw.Cells(M + 1, N + 1) <> "" Then '单元格数据若不为空,将其写入中间变量Line_Map
Tem_Map = shRaw.Cells(M + 1, N + 1)
Line_Map = Line_Map & Tem_Map
End If
Next N
Print #1, Line_Map '将工作表Map中136行和136列数据写入txt文档
Next M
Close #1
ActiveWorkbook.Save
End Sub
写入结果如图所示。
上述代码通过循环的方法将excel单元格的内容写入到指定路径下的txt中,从而实现数据在不同文件格式间的传递,体现VBA在数据处理中的灵活性。