Excel中最方便的功能之一就是“文本到列”功能,它使您可以根据指定的任何条件轻松地将单元格内容拆分为单个单元格。使用该功能的一种方法是允许其识别单元格中的字符,并使用这些字符触发应在何处进行拆分。这种拆分类型称为“分隔拆分”。

您可能想知道如何在您正在编写的宏中执行定界的文本到列操作。通过对您设置的选择使用TextToColumns方法,这很容易做到。考虑以下非常简单的宏:

Sub ExampleSplit1()

Selection.TextToColumns _       Destination:=Range("A2"), _       DataType:=xlDelimited, _       TextQualifier:=xlDoubleQuote, _       ConsecutiveDelimiter:=False, _       Tab:=True, _       Semicolon:=False, _       Comma:=False, _       Space:=False, _       Other:=True, _       OtherChar:="-"

End Sub

注意您可以为TextToColumns方法设置的所有变量。

这些变量中的大多数仅是必需的,因为这是定界的拆分。变量设置该方法用作定界符的内容。

如果您是手动使用功能,则变量从Tab行开始直接对应于您在“将文本转换为列”向导的步骤2中所做的设置。您可以将Tab,分号,逗号和空格设置为True或False,具体取决于您是否希望将该字符用作分隔符。

您还可以将Other变量设置为True或False,这取决于您是否要使用“用户定义的”定界符。如果将其设置为True,则应将OtherChar变量设置为等于要用作定界符的字符。

如果在同一个宏中多次使用TextToColumns方法,则在第一个调用之后唯一需要做的就是更改与前一个调用不同的变量。例如,假设您在同一个宏中两次调用该方法,并且第一次您希望将拆分放在破折号字符的实例上,但是第二次您希望将拆分在小写字母x的任何实例上进行。您可以像这样将宏放在一起:

Sub ExampleSplit2()

Dim objRange1 As Range     Dim objRange2 As Range

'Set up the ranges     Set objRange1 = Range("A2:A20")

Set objRange2 = Range("A21:A35")



'Do the first parse     objRange1.TextToColumns _       Destination:=Range("A2"), _       DataType:=xlDelimited, _       Tab:=False, _       Semicolon:=False, _       Comma:=False, _       Space:=False, _       Other:=True, _       OtherChar:="-"



'Do the second parse     objRange2.TextToColumns _       Destination:=Range("A21"), _       DataType:=xlDelimited, _       OtherChar:="x"

End Sub

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(8317)适用于Office 365中的Microsoft Excel 2007、2010、2013、2016、2019和Excel。您可以在此处为Excel的较旧菜单界面找到此技巧的版本: