Excel TextToColumns FixedWidth

当使用文本固定宽度的列时,用于分隔某些文件中的列的空格会发生什么变化? (布局用空格填充,但也是一个分隔列的空间)

每行,每列的数据从下一个表格开始,结束于下一个表格,另一个空格分隔每列。 我的问题是,这个空间应该是前一列还是后一列的一部分。 MS文档甚至没有提到根据固定宽度修剪空白的问题。

CHAR START CHAR MAX END( spaces will pad out to this char position if data doesn't) 1 12 14 48 50 52 54 63 65 68 70 73 75 89 91 102 104 138 140 142 144 EOL 

这是我正在使用的代码,但我想知道所有字符位置后第一列增加1是可靠的..

  Columns("A:A").TextToColumns Destination:=Range("A1"), DataType:=xlFixedWidth, _ FieldInfo:=Array(Array(0, 1), Array(12, 1), Array(48, 1), Array(52, 1), Array(63, 1), _ Array(68, 1), Array(73, 1), Array(89, 1), Array(102, 1), Array(138, 1), Array(142, 1)), _ TrailingMinusNumbers:=True 

样本数据将是

  111111111111 AB CDEFGH IJKLMNO PQRSTYV WXYZA 1 11.1 ABC 1 1 ABCDEFGHIJKLMNO 111111111111 AB CDEFGH IJKLMNO PQSTYVW 11 100 ABC 

我不会添加任何数字,除非您的数据在右侧被截断,或者您的单元格中有空白。

在你的例子中,你的第二列从12位开始。第一列有12个“1”,没有尾随空格。

请注意,“Array(0,1)”中的第二个数字表示数据types。 1 =一般,2 =文本,3以上都是我相信的datetypes。 如果你select一般(所有),它将自动消除数字的尾随空白,将该值转换为数字。 如果列值包含任何文本,则将被视为文本。 如果您为所有这些字段select“2”,则它会将您的列保存为文本而不进行任何转换,并且尾随空白不会从数字值中消除。

当使用文本固定宽度的列时,用于分隔某些文件中的列的空格会发生什么变化?

他们被删除。 TRIM(工作表函数)等同于应用于每个字段(列间隔之间的内容)。 345....DEF (其中点代表空格)在一个单元格中结束为345 ,另一个分隔符位于5D之间的DEF结束。 无论select的列数据格式如何,无论字符是数字还是字母都是如此。

只要您的parsing数字表示在要分隔的字段之间的一个或多个空白区域的旁边或之内的位置,无论是在一个或多个空间的开始处,在一个或多个空间中的任一侧或者在一个或多个空间的末尾。 无论一个空间还是一百个都没有区别。