是否可以使用vba打开固定列分隔和不同大小的文本文件

时间:2017-02-11 12:14:07

标签: excel vba excel-vba

我有很多文本文件,首先通过vba打开然后处理。不过,我的所有文本文件都是固定长度分隔的。唯一的问题是每个文件的列大小不同。

FieldInfo:=Array(Array(0, 1), Array(6, 1), Array(11, 1), Array(46, 1), Array(51, 1), Array(57, 1), Array(71, 1), Array(79, 1), Array(86, 1), Array(96, 1), Array(100, 1), Array(107, 1), Array(114, 1), Array(123, 1), Array(132, 1), Array(141, 1)), TrailingMinusNumbers:=True

另一个可能是:

FieldInfo:=Array(Array(0, 1), Array(7, 1), Array(22, 1), Array(77, 1), Array(141, 1)), TrailingMinusNumbers:=True

但是如果我手动执行,Excel始终会独立于文件建议正确的数组。

是否有可能让Excel建议使用这些数组或至少以其他方式获取这些数组?

1 个答案:

答案 0 :(得分:0)

我假设您使用Workbooks.OpenText方法打开文件,例如:

Workbooks.OpenText Filename:="C:\Temp\myFile.txt", _
                   Origin:=xlWindows, _
                   StartRow:=1, _
                   DataType:=xlFixedWidth, _
                   FieldInfo:=Array(Array(0, 1), Array(6, 1), Array(11, 1), Array(46, 1), Array(51, 1), Array(57, 1), Array(71, 1), Array(79, 1), Array(86, 1), Array(96, 1), Array(100, 1), Array(107, 1), Array(114, 1), Array(123, 1), Array(132, 1), Array(141, 1)), _
                   TrailingMinusNumbers:=True

如果是这样,你可以放下FieldInfo参数并强制Excel做出自己的猜测:

Workbooks.OpenText Filename:="C:\Temp\myFile.txt", _
                   Origin:=xlWindows, _
                   StartRow:=1, _
                   DataType:=xlFixedWidth, _
                   TrailingMinusNumbers:=True
相关问题