在数据文件中手动定义固定宽度

Manually Define Fixed Widths in Data File

我有一个来自第三方的固定宽度数据文件,其中包含 1,000 条记录。它带有一个单独的文档,显示所有可用的列、每列的字符开始字符结束和字符长度。它有数千列。

我的数据文件并不是每一行都有数据,所以在 Excel 中定义固定宽度是不可行的,因为我可能会错误地跳过一列,因为我看不到它有数据。

是否有允许您手动 type/define 或导入宽度的文本编辑器?

这个 "separate document" 是什么样子的?假设我有一个文本文件,其中有一列要读取的宽度值,看起来像这样:

20

25

30

10

5

23

25

10

23

然后我可以将此文本文件中的值读入 excel,并使用以下 vba 代码调整电子表格的列宽:

Sub colWidth()
    Dim widthArray() As String
    Dim myFile, textline As String
    Dim x, y As Integer


    'example text file containing column widths
    myFile = "C:\qqq\qqq\qqq\widths.txt"

    'loop through the file and store each column width in an array
    Open myFile For Input As #1
    x = 1
    Do Until EOF(1)
        Line Input #1, textline
        ReDim Preserve widthArray(1 To x)
        widthArray(x) = textline
        x = x + 1
    Loop
    Close #1

    'using the array of column widths to adjust columns
    For y = 1 To UBound(widthArray)
        Columns(y).ColumnWidth = Int(widthArray(y))
    Next y
End Sub