Range.TextToColumns 方法 (Excel)

将包含文本的一列单元格分解为若干列。

语法

表达式TextToColumns (DestinationDataTypeTextQualifierConsecutiveDelimiterTab分号逗号空格其他OtherCharFieldInfoDecimalSeparatorThousandsSeparatorTrailingMinusNumbers)

expression 一个表示 Range 对象的变量。

参数

名称 必需/可选 数据类型 说明
Destination 可选 Variant 一个 Range 对象,指定 Microsoft Excel 放置结果的位置。 如果该区域大于一个单元格,则使用左上角的单元格。
DataType 可选 XlTextParsingType 将被拆分到多列中的文本的格式。
TextQualifier 可选 XlTextQualifier 指定是使用单引号、双引号还是不使用引号作为文本限定符。
ConsecutiveDelimiter 可选 Variant 如果为 True ,Excel 会将连续分隔符视为一个分隔符。 默认值为 False
Tab 可选 Variant 如果为 True,则 DataTypexlDelimited 并将制表符作为分隔符。 默认值为 False
Semicolon 可选 Variant 如果为 True,则 DataTypexlDelimited 并将分号作为分隔符。 默认值为 False
Comma 可选 Variant 如果为 True,则 DataTypexlDelimited 并将逗号作为分隔符。 默认值为 False
Space 可选 Variant 如果为 True,则 DataTypexlDelimited 并将空格字符作为分隔符。 默认值为 False
Other 可选 Variant 如果为 True,则 DataTypexlDelimited 并将由 OtherChar 参数指定的字符作为分隔符。 默认值为 False
OtherChar 可选 Variant 如果 “其他” 为 True,则为 必需项; “其他”True 时的分隔符。 如果指定了多个字符,则仅使用字符串中的第一个字符而忽略剩余字符。
FieldInfo 可选 Variant 包含各个数据列解析信息的数组。 解释取决于 DataType 的值。

分隔数据时,此参数是一个双元素数组,每个双元素数组指定特定列的转换选项。 第一个元素是列号 (从 1 开始的) ,第二个元素是指定列分析方式的 XlColumnDataType 常量之一。
DecimalSeparator 可选 Variant 识别数字时,Microsoft Excel 使用的小数分隔符。 默认设置为系统设置。
ThousandsSeparator 可选 Variant 识别数字时,Excel 使用的千位分隔符。 默认设置为系统设置。
TrailingMinusNumbers 可选 Variant 以减号字符开始的数字。

返回值

Variant

备注

下表显示了使用不同的导入设置向 Excel 中导入文本时的结果。 数字结果显示在最右边的列中。

系统小数分隔符 系统千位分隔符 小数分隔符值 千位分隔符值 原始文本 单元格的值(数据类型)
Period 逗号 逗号 句号 123.123,45 123,123.45(数字)
句号 逗号 逗号 逗号 123.123,45 123.123,45(文本)
逗号 句号 逗号 句号 123,123.45 123,123.45(数字)
句号 逗号 句号 逗号 123 123.45 123 123.45(文本)
句号 逗号 句号 空格 123 123.45 123,123.45(数字)

仅当已安装并选择了台湾语言支持时,才使用 XlColumnDataType 枚举的 xlEMDFormat 常量。 xlEMDFormat 常量指定使用的中国台湾民国年份日期。

列说明符可为任意顺序。 在输入数据中,如果某一特定列没有给定列说明符,则使用 xlGeneralFormat 设置对该列进行分列。 该示例跳过了源数据的第三列,第一列作为文本进行分列,而其余各列均使用 xlGeneralFormat 设置进行分列。

 Array(Array(3, 9), Array(1, 2))

如果源数据具有固定宽度的列,则每个双元素数组的第一个元素指定列中的起始字符位置(作为整数;0(零)是第一个字符)。 双元素数组的第二个元素将列的解析选项指定为 1 到 9 的数字,如前面所述。

以下示例从固定宽度的文件中解析两个列,第一列从行的开头开始,并扩展为 10 个字符。 第二列从位置 15 开始并到达行尾。 为避免在位置 10 和位置 15 之间包含字符,Microsoft Excel 会添加跳过的列条目。

Array(Array(0, 1), Array(10, 9), Array(15, 1))

示例

此示例将剪贴板的内容(包含空格分隔的文本表)转换为 Sheet1 上的单独列。 可以在记事本或写字板(或其他文本编辑器)中创建一个简单的以空格分隔的表,将文本表复制到剪贴板,切换到 Microsoft Excel,然后运行此示例。

Worksheets("Sheet1").Activate 
ActiveSheet.Paste 
Selection.TextToColumns DataType:=xlDelimited, _ 
 ConsecutiveDelimiter:=True, Space:=True

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。