当列宽每天变化时如何自动将文本文件导入Excel

我必须每天将7个文本文件导入Excel。 我想使用macros自动完成任务,但其中一列的宽度可能会有所不同。 目前我必须删除“自动”中断并插入我自己的(总是在相同的位置)。 有没有办法修改Excel导入向导不自动插入列中断?

您可以通过将包含parsing信息的数组传递给TextToColumns方法的FieldInfo参数来完成此操作。

FieldInfo参数将包含您希望将源列拆分成的每个数据列的parsing信息的数组作为其值,并采用以下格式:

FieldInfo:=Array(Array(0, 1), Array(2, 1), Array(5, 1), Array(7, 1), Array(11, 1)) 

从Microsoft的FieldInfo参数文档 :

包含各个数据列的parsing信息的数组。 解释取决于DataType的值。 数据分隔时,此参数是一个由两个元素组成的数组,每个两元素数组指定特定列的转换选项。 第一个元素是列号(从1开始),第二个元素是xlColumnDataType常量之一,指定如何parsing列。

因此,要将导入文件的“A”列中的数据拆分为位置2,5,7和11处的各个列,并且要使列具有“常规”数据types,则可以在macros中执行以下操作:

 Columns("A:A").Select Selection.TextToColumns Destination:=Range("A1"), DataType:=xlFixedWidth, _ FieldInfo:=Array(Array(0, 1), Array(2, 1), Array(5, 1), _ Array(7, 1), Array(11, 1)), _ TrailingMinusNumbers:=True