使用vab的print #将Excel的数据导出到TXT,如何做到同时输出两组数据,能在TXT中左右分列
时间: 2024-12-08 15:13:12 浏览: 16
VAB逐行读取文件内容.txt
在VBA中,你可以使用Print#函数将Excel数据一次性写入文本文件,但是默认情况下Print#不会自动对齐或分列。如果你想在TXT文件中同时输出两组数据,并且保持左右分列,你需要先准备两个数组分别存储两边的数据,然后结合使用WriteLine方法。以下是基本的步骤:
1. **创建两个数组**:
```vba
Dim data1() As Variant ' 存放尺寸名称或其他左侧数据
Dim data2() As Variant ' 存放尺寸数据或其他右侧数据
```
2. **填充数组**:
```vba
ReDim data1(1 To numRows, 1 To 1) ' numRows是左侧数据行数
ReDim data2(1 To numRows, 1 To 1) ' 假定行数相同
For i = 1 To numRows
data1(i, 1) = ws.Cells(i, colNameLeft).Value ' 将尺寸名称等左侧数据存入data1
data2(i, 1) = ws.Cells(i, colDataRight).Value ' 将对应的数据存入data2
Next i
```
3. **写入TXT文件**:
```vba
Open "output.txt" For Output As #1
For i = 1 To numRows
Print #1, Join(data1(i, 1), ",") ' 左侧数据用逗号连接
Print #1, Join(data2(i, 1), ",") ' 右侧数据也用逗号连接
Print #1, "" ' 插入分隔行
Next i
Close #1
```
4. **运行宏**:
同样使用 `Run` 按钮或 `F5` 运行这段代码。
注意:
- `colNameLeft` 和 `colDataRight` 是你想要读取的左侧和右侧列的单元格引用。
- 使用Join函数可以把数组元素连接成字符串,并在每个元素间添加指定字符(这里是逗号)。
阅读全文