如何在 Excel VBA 中将数据写入文本文件?
此 VBA 程序读取 Excel 范围(销售数据)并写入文本文件 (Sales.txt)
Excel VBA 代码从 Excel 文件中读取数据(销售数据 - 范围“A1:E26”)。行和列需要两个“For 循环”。在文本文件中用逗号写入每个值,直到列末尾(不带逗号只写入最后一列值)。执行上述步骤,直到到达行尾。
Excel 中的销售数据: 5 列和 25 行
用于创建文本文件的 VBA 代码如下
VBA代码:
- 声明变量:
Variable | Data Type | Comments |
---|---|---|
myFileName | String | Output text file (Full path with file name) |
rng | Range | Excel range to read |
cellVal | Variant | Variable to assign each cell value |
row | Integer | Iterate rows |
col | Integer | Iterate columns |
'Variable declarations
Dim myFileName As String, rng As Range, cellVal As Variant, row As Integer, col As Integer
- 初始化变量:
- 我的文件名: 带有输出文本文件完整路径的文件名
- rng:从 Excel 读取数据的 Excel 范围。
'Full path of the text file
myFileName = "D:\Excel\WriteText\sales.txt"
'Data range need to write on text file
Set rng = ActiveSheet.Range("A1:E26")
打开输出文本文件并分配一个变量“#1”
'Open text file
Open myFileName For Output As #1
'嵌套循环以迭代给定范围的行和列,例如:“A1:E26” [5 列和 26 行]
'Number of Rows
For row = 1 To rng.Rows.Count
'Number of Columns
For col = 1 To rng.Columns.Count
将值赋给变量 cellVal
cellVal = rng.Cells(row, col).Value
用逗号写 cellVal。如果col等于一行的最后一列。不带逗号的只写值。
'write cellVal on text file
If col = rng.Columns.Count Then
Write #1, cellVal
Else
Write #1, cellVal,
End If
关闭两个 for 循环
Next col
Next row
关闭文件
Close #1
方法:
第 1 步:将形状(创建文本文件)添加到工作表
第2步:右键单击“创建文本文件”和“分配宏..”
第 3 步:选择MacroToCreateTextFile
第 4 步:将您的 Excel 文件另存为“启用 Excel 宏的工作簿” *.xlsm
第五步:点击“创建文本文件”