【问题标题】:How to import text files in MS Excel with each line in a separate column?如何在 MS Excel 中导入文本文件,每行位于单独的列中?
【发布时间】:2016-05-02 15:53:12
【问题描述】:

我有 > 5000 World files 基本上是包含 6 行数据的文本文件。我想将它们全部合并到一个 MS Excel 文件中,格式如下:

  • 第一列:世界文件名
  • 第二列:世界文件的第一行
  • 第 3 列:World 文件中的第 2 行
  • 第 4 列:World 文件中的第 3 行
  • 第 5 列:World 文件中的第 4 行
  • 第 6 列:世界文件中的第 5 行
  • 第 7 列:World 文件中的第 6 行

每一行都是 World 文件之一。

有没有脚本可以做到这一点?

【问题讨论】:

    标签: excel text-files


    【解决方案1】:

    首先将您的文件规范放在 Sheet1A 中,例如:

    然后选择 Sheet1,运行这个宏:

    Sub WideWideWorld()
        Dim N As Long, i As Long, k As Long
        Dim s As String, j As Long, kk As Long
    
        kk = 1
        N = Cells(Rows.Count, "A").End(xlUp).Row
        Close #1
        For i = 1 To N
            k = 1
            s = Cells(i, 1).Value
            Open s For Input As #1
            For j = 1 To 6
                Line Input #1, TextLine
                Sheets("Sheet2").Cells(kk, k).Value = TextLine
                k = k + 1
            Next j
            Close #1
            kk = kk + 1
        Next i
    End Sub
    

    输出将存储在 Sheet2

    我建议从 Sheet1 中的一小部分开始,看看格式是否满足您的需求。

    例程从每个文件中提取第一行......所以请确保每个文件至少包含 6 行。

    【讨论】:

    • 看起来很有希望!我尝试了 2 个文件,但它只复制了前 3 行,由一列分隔(A 列包含第 1 行,C 列包含第 2 行,E 列包含第 3 行)。第 4、5 和 6 行丢失,文件名也丢失。关于出了什么问题的任何线索?谢谢!
    • @Nahas 听起来每条记录之间都有某种双重返回,所以偶数记录显示为空白............我们可以容纳这是我可以得到我的实际文件!
    • 如果您需要实际文件,可以在此处下载示例世界文件:charttiff.com/geolites/samples.shtml
    • @Nahas 谢谢,我会在下午晚些时候更新代码。
    • 在您的代码中,我将“For j = 1 To 6”更改为“For j = 1 To 12”并导入了所有行。它们仍然被一个空列隔开,但我可以手动擦除它们,所以这不是问题。我得到了我需要的一切!还有一个问题:有没有办法自动将我的文件规范放在 Sheet1 列 A 中? 就像我说的,我有超过 5000 个文件,因此不能一个一个地复制/粘贴路径。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-18
    • 2020-09-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多