Excel VBA教程:TextToColumns方法

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

expression.TextToColumns(Destination, DataType, TextQualifier, ConsecutiveDelimiter, Tab, Semicolon, Comma, Space, Other, OtherChar, FieldInfo, DecimalSeparator, ThousandsSeparator, TrailingMinusNumbers)

expression   必需。该表达式返回“应用于”列表中的对象之一。

Destination   Variant 类型,可选。指定 Microsoft Excel 放置结果的位置的 Range对象。如果该区域大于一个单元格,请使用左上角的单元格。

DataType  XlTextParsingType 类型,可选。将被拆分到多列中的文本的格式。

XlTextParsingType 可为以下 XlTextParsingType 常量之一。
xlDelimited 默认值
xlFixedWidth

TextQualifier  XlTextQualifier 类型,可选。

XlTextQualifier 可为以下 XlTextQualifier 常量之一。
xlTextQualifierDoubleQuote 为默认值
xlTextQualifierNone
xlTextQualifierSingleQuote

ConsecutiveDelimiter   Variant 类型,可选。如果该值为 True,则 Microsoft Excel 将把连续的分隔符识别为单个分隔符。默认值为 False。

Tab   Variant 类型,可选。如果该值为 True,则 DataType 为 xlDelimited 且以制表符为分隔符。默认值为 False。

Semicolon   Variant 类型,可选。如果该值为 True,则 DataType 为 xlDelimited 且以分号为分隔符。默认值为 False。

Comma   Variant 类型,可选。如果该值为 True,则 DataType 为 xlDelimited 且以逗号为分隔符。默认值为 False。

Space   Variant 类型,可选。如果该值为 True,则 DataType 为 xlDelimited 且以空格为分隔符。默认值为 False。

Other   Variant 类型,可选。如果该值为 True,则 DataType 为 xlDelimited 且以 OtherChar参数指定的字符为分隔符。默认值为 False。

OtherChar   Variant 类型,可选(当 Other 为 True 时为必需)。当 Other 为 True 时的分隔符。如果指定了若干字符,则仅使用其中的第一个字符而忽略其他字符。

FieldInfo   Variant 类型,可选。包含单列数据拆分信息的数组。对本参数的解释取决于 DataType 的值。如果此数据由分隔符分隔,则本参数为由两元素数组组成的数组,其中每个两元素数组指定一个特定列的转换选项。第一个元素为列标(从 1 开始),第二个元素是xlColumnDataType 常量之一,用以指定该列的拆分方式。

XlColumnDataType 可为以下 XlColumnDataType 常量之一。
xlGeneralFormat 表示常规
xlTextFormat 表示文本

xlMDYFormat 表示 MDY 日期

xlDMYFormat 表示 DMY 日期

xlYMDFormat 表示 YMD 日期

xlMYDFormat 表示 MYD 日期

xlDYMFormat 表示 DYM 日期

xlYDMFormat 表示 YDM 日期

xlEMDFormat 表示 EMD 日期

xlSkipColumn 表示跳过列

只有在安装并选定了台湾地区语言支持时才可使用 xlEMDFormat。xlEMDFormat 常量指定使用台湾地区纪元日期。

列识别符可为任意顺序。在输入数据中,如果某一特定列没有给定列识别符,那么该列以 General 形式进行拆分。在下例中,跳过了源数据的第三列,第一列以文本形式进行拆分,而其余各列均以 General 形式进行拆分。


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))

DecimalSeparator   String 类型,可选。表示在识别数字时,Microsoft Excel 使用的小数分隔符。默认设置为系统设置。

ThousandsSeparator   String 类型,可选。表示在识别数字时,Excel 使用的千位分隔符。默认设置为系统设置。

TrailingMinusNumbers   Variant 类型,可选。以减号字符开始的数字。

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

系统十位分隔符 系统千位分隔符 十位分隔符值 千位分隔符值 原始文本 单元格的值(数据类型)
句号 逗号 逗号 句号 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(数字)

Excel VBA教程:TextToColumns方法·示例

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


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

上页:Excel VBA教程:Text方法 下页:Excel VBA教程:ToggleVerticalText方法

Excel VBA教程:TextToColumns方法

Excel VBA教程:ToggleVerticalText方法 Excel VBA教程:TransferChildren方法
Excel VBA教程:Trendlines方法 Excel VBA教程:TwoColorGradient方法
Excel VBA教程:Undo方法 Excel VBA教程:Ungroup方法
Excel VBA教程:Union方法 Excel VBA教程:UnMerge方法
Excel VBA教程:Unprotect方法 Excel VBA教程:UnprotectSharing方法
Excel VBA教程:Update方法 Excel VBA教程:UpdateFromFile方法
Excel VBA教程:UpdateLink方法 Excel VBA教程:UpdateNotify方法
Excel VBA教程:UseDefaultFolderSuffix方法 Excel VBA教程:UserPicture方法
Excel VBA教程:UserTextured方法 Excel VBA教程:Verb方法
Excel VBA教程:Volatile方法 Excel VBA教程:Wait方法
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号