我有一个文本文件,其中的列数比 Excel 允许的要多得多,所以我想将数据转置为列将其导入 Excel 时. 关于我该如何做,您有什么想法吗?
答案1
编辑找到了更好的方法,因此更新了代码
最好编写一个 VBA 宏来进行导入。
这是您的入门指南。请注意,它需要进行一些调整才能适合您的数据。
Sub ImportTranspose()
Dim fso As New FileSystemObject
Dim txtFile As TextStream
Dim col As Long
Dim dat As Variant
Dim sh As Worksheet
Set sh = ActiveSheet
Set txtFile = fso.OpenTextFile("C:\Tmp\SampleData.txt")
col = 1
Do While Not txtFile.AtEndOfStream
dat = Application.Transpose(Application.Index(Split(txtFile.ReadLine, ","), 1, 0))
sh.Cells(1, col).Resize(UBound(dat), 1) = dat
col = col + 1
Loop
CleanUp:
On Error Resume Next
txtFile.Close
Set txtFile = Nothing
Set fso = Nothing
End Sub
笔记:
- 假设数据文件中的所有行都以逗号分隔
- 不包含错误处理
- 将数据放入活动工作表中,从单元格 A1 开始,并覆盖所有现有数据
- 硬编码文件名和位置 - 更改以适应或添加 GetFile 对话框