Una de las funciones más útiles de Excel es la función Texto a columnas, que le permite dividir fácilmente el contenido de las celdas en celdas individuales de acuerdo con cualquier criterio que especifique. Un método para usar la función es permitirle reconocer caracteres dentro de las celdas y usar esos caracteres para activar dónde debería tener lugar la división. Este tipo de división se conoce como división delimitada.

Quizás se esté preguntando cómo puede realizar una operación de texto a columnas delimitado en una macro que esté escribiendo. Esto es bastante fácil de hacer usando el método TextToColumns en una selección que configure. Considere la siguiente macro muy simple:

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

Observe todas las variables que puede establecer para el método TextToColumns.

La mayoría de estas variables solo son necesarias porque se trata de una división delimitada; las variables establecen lo que el método utiliza como delimitador.

Comenzando con la línea de tabulación, las variables corresponden directamente a la configuración que realizaría en el Paso 2 del Asistente para convertir texto en columnas, si estuviera usando la función manualmente. Puede establecer Tabulación, Punto y coma, Coma y Espacio en Verdadero o Falso, dependiendo de si desea que ese carácter se use como delimitador.

También puede establecer la otra variable en Verdadero o Falso, dependiendo de si desea tener un delimitador «definido por el usuario». Si lo establece en Verdadero, entonces debe establecer la variable OtherChar igual al carácter que desea usar como delimitador.

Si usa el método TextToColumns varias veces en la misma macro, lo único que debe hacer en las invocaciones posteriores a la primera es cambiar las variables que difieren de la invocación anterior. Por ejemplo, digamos que está llamando al método dos veces en la misma macro, y la primera vez desea que la división esté en una instancia del carácter de guión, pero la segunda desea que esté en cualquier instancia de una x minúscula . Puedes juntar la macro así:

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

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.

link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Este consejo (2929) se aplica a Microsoft Excel 97, 2000, 2002 y 2003. Puede encontrar una versión de este consejo para la interfaz de cinta de Excel (Excel 2007 y posterior) aquí:

link: / excelribbon-Delimited_Text-to-Columns_in_a_Macro [Delimited_Text-to-Columns in a Macro].