>我有一个大的 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