导入 Excel 时将列转置为行

导入 Excel 时将列转置为行

我有一个文本文件,其中的列数比 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

笔记:

  1. 假设数据文件中的所有行都以逗号分隔
  2. 不包含错误处理
  3. 将数据放入活动工作表中,从单元格 A1 开始,并覆盖所有现有数据
  4. 硬编码文件名和位置 - 更改以适应或添加 GetFile 对话框

相关内容