0

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

4

1 回答 1

2

您可以通过将包含解析信息的数组传递到 TextToColumns 方法的 FieldInfo 参数来实现此目的。

FieldInfo 参数的值是一个 Array,其中包含您希望将源列拆分为的每一列数据的解析信息,并采用如下格式:

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

来自Microsoft 的 FieldInfo参数文档:

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

因此,要将导入文件的“A”列中的数据拆分为位置 2、5、7 和 11 的单独列,并使列具有“常规”数据类型,您可以在宏中执行以下操作:

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
于 2013-02-05T20:23:17.623 回答