📜  如何在 Excel VBA 中将数据写入文本文件?

📅  最后修改于: 2022-05-13 01:57:35.290000             🧑  作者: Mango

如何在 Excel VBA 中将数据写入文本文件?

此 VBA 程序读取 Excel 范围(销售数据)并写入文本文件 (Sales.txt)

Excel VBA 代码从 Excel 文件中读取数据(销售数据 - 范围“A1:E26”)。行和列需要两个“For 循环”。在文本文件中用逗号写入每个值,直到列末尾(不带逗号只写入最后一列值)。执行上述步骤,直到到达行尾。

Excel 中的销售数据: 5 列和 25 行

销售数据

用于创建文本文件的 VBA 代码如下

VBA代码:

  • 声明变量:
VariableData TypeComments
myFileName StringOutput text file (Full path with file name)
rngRangeExcel range to read 
cellValVariantVariable to assign each cell value
rowIntegerIterate rows
colIntegerIterate 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

第五步:点击“创建文本文件