vba 多列转行 逗号分隔 写成csv文件
时间: 2024-01-31 12:46:51 浏览: 106
这是一个比较常见的数据处理需求,可以使用 VBA 代码来实现。以下是一个示例代码,可以将选定的多列数据转换为逗号分隔的单行数据,并将其写入 CSV 文件中:
```
Sub MultiColumnsToCSV()
Dim output As String
Dim cell As Range
Dim lastRow As Long
Dim lastColumn As Long
Dim i As Long, j As Long
Dim filePath As String
' 获取选定区域的行数和列数
lastRow = Selection.Rows.Count
lastColumn = Selection.Columns.Count
' 遍历选定区域的每个单元格,将数据拼接成单行字符串
For i = 1 To lastRow
For j = 1 To lastColumn
Set cell = Selection.Cells(i, j)
output = output & cell.Value & ","
Next j
Next i
' 去掉最后一个逗号
output = Left(output, Len(output) - 1)
' 弹出保存文件对话框,选择保存路径和文件名
filePath = Application.GetSaveAsFilename(InitialFileName:="output.csv", fileFilter:="CSV Files (*.csv), *.csv")
' 将字符串写入 CSV 文件中
Open filePath For Output As #1
Print #1, output
Close #1
End Sub
```
使用时,只需选中需要转换的多列数据,然后执行该宏即可。弹出保存文件对话框后,选择保存路径和文件名即可将数据保存为 CSV 文件。需要注意的是,代码中使用的是默认的逗号分隔符,如果需要使用其他分隔符,可以将代码中的逗号替换为相应的分隔符即可。
阅读全文