当列标题和数据值始终右对齐时,Excel txt 文件导入



>我有一个大的 txt 文件,它包含一个矩阵,其中列标题和数据值始终右对齐。这是我能找到的唯一允许将 txt 导入 excel 的"常规功能",因为根据数据数字的大小,元素由不规则数量的空格分隔。

矩阵在多个位置具有空单元格。它看起来像这样:

              4536        4705        2360        2355        2717       
 56099                                                      5156.5 
 12470      4114.9                                                                 
 12469                    23.0                                          
 56997                  2311.9                                             
 12471                                                                 
 12479                                                                 
 12473                                                                 
 12478        41.1                                                               
 12484                                         78957.7                      
 12477                                                                 
 12483                                                                 
 12476                           7125444.9                                     

关于如何使用VBA进行导入的任何建议?我怎样才能要求向右对齐的条件?谢谢。

帖子中的数据与列宽 12 右对齐。

此宏将打开 txt 文件data2其中包含您帖子中的信息并适当设置列。

Sub OpenMatrixData()
    Dim filename As String
    filename = "C:Testdata2.txt"
    Dim firstColumnWidth As Integer
    Dim columnWidth As Integer
    firstColumnWidth = 6
    columnWidth = 12
    Workbooks.OpenText filename:=filename, Origin:=437, StartRow:= _
        1, _
        DataType:=xlFixedWidth, _
        FieldInfo:=Array(Array(0, 1), _
        Array(firstColumnWidth, 1), _
        Array(firstColumnWidth + columnWidth * 1, 1), _
        Array(firstColumnWidth + columnWidth * 2, 1), _
        Array(firstColumnWidth + columnWidth * 3, 1), _
        Array(firstColumnWidth + columnWidth * 4, 1), _
        Array(firstColumnWidth + columnWidth * 5, 1)), _
        TrailingMinusNumbers:=True
End Sub

Excel 对齐方式:

|    |  4536|  4705|     2360|   2355|   2717|
56099|      |      |         |       | 5156.5|
12470|4114.9|      |         |       |       |
12469|      |    23|         |       |       |
56997|      |2311.9|         |       |       |
12471|      |      |         |       |       |
12479|      |      |         |       |       |
12473|      |      |         |       |       |
12478|  41.1|      |         |       |       |
12484|      |      |         |78957.7|       |
12477|      |      |         |       |       |
12483|      |      |         |       |       |
12476|      |      |7125444.9|       |       |

针对OP评论:

对于动态数量的列,您可以尝试一下,这依赖于Excel来确定如何处理数据。 它适用于示例,但不如上述解决方案可靠。

Sub OpenMatrixData()
    Dim filename As String
    filename = "C:Testdata2.txt"
    Workbooks.OpenText filename:=filename
End Sub

最新更新