我有很多文本文件,首先通过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建议使用这些数组或至少以其他方式获取这些数组?
答案 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