如何转置一组列并将输出另存为CSV

时间:2015-08-28 02:46:35

标签: excel vba csv

我在列中有很长的信息,有时有数百行(这是通过VBA生成的)。我需要转置它并将其保存为CSV(因为excel会用完列)。

附表的截图。

Screenshot of table

提前感谢任何帮助。

问题以两种不同的方式得到了回答。我相信它对许多其他人都很有价值。

1 个答案:

答案 0 :(得分:1)

这是一个较短的版本(我使用Nats代码作为基础)。它应该快得多,因为它不会循环行。

Sub WriteFile()
Dim LR As Long, ColNum As Long, PathName As String, OutputFileNum As String
PathName = Application.ActiveWorkbook.Path
OutputFileNum = FreeFile
Open PathName & "\Test.csv" For Output Lock Write As #OutputFileNum
For ColNum = 1 To Cells(1, Columns.Count).End(xlToLeft).column
    LR = Cells(1, ColNum).Offset(Rows.Count - 1, 0).End(xlUp).Row
    CSVString = Join(Application.Transpose(Cells(1, ColNum).Resize(LR, 1)), ",")
    Print #OutputFileNum, CSVString
Next
Close OutputFileNum
End Sub