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

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

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始终build议独立于文件的正确数组。

有没有可能让Excel提出这些arrays,或者至less让这些arrays以其他方式?

我假设你正在使用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