Delimitar el texto de una celda a una columna verticalmente

Anonim

En este artículo, crearemos una macro para delimitar el texto de una celda a una columna verticalmente. Podemos delimitar el texto de la celda en función del delimitador. El delimitador puede ser una coma, un espacio, una barra invertida, etc.

Para explicar el funcionamiento de la macro, hemos tomado la URL como texto de muestra en la celda A10. La macro se puede ejecutar haciendo clic en el botón "Enviar".

Después de ejecutar la macro, devolverá la salida en la siguiente columna. El valor de texto de la celda se separa en varias subcadenas en varias celdas de la segunda columna.

Explicación lógica

Hemos creado una macro "texttocolumns" que realiza dos tareas. En primer lugar, delimita la cadena en A10 a varias subcadenas, según el delimitador. En este ejemplo, usamos guión (-) como delimitador. En segundo lugar, atraviesa subcadenas generadas de varias columnas a una sola columna.

Explicación del código

Rng.texttocolumns Destino: = Rng.Offset (0, 1), Tipo de datos: = xlDelimited, _

TextQualifier: = xlDoubleQuote, ConsecutiveDelimiter: = True, Other: = True, OtherChar _

:="-"

El código anterior se usa para delimitar la cadena en el rango "Rng". Destino especifica el rango de ubicación donde aparecerá la salida. DataType especifica el tipo de delimitador utilizado. TextQualifier especifica el carácter que se utiliza para el calificador de texto. OtherChar especifica el carácter utilizado como delimitador.

Siga a continuación para obtener el código

 Sub texttocolumns () 'Declarando variables Dim StartRow, i, LastCol As Long Dim Rng As Range' deshabilitando las alertas de visualización Application.DisplayAlerts = False 'Inicializando la variable StartRow = 10 Set Rng = Range ("A10")' Separando el texto basado en el delimitador Rng.texttocolumns Destino: = Rng.Offset (0, 1), DataType: = xlDelimited, _ TextQualifier: = xlDoubleQuote, ConsecutiveDelimiter: = True, Other: = True, OtherChar _: = "-" 'Encontrar la columna número de celda que contiene la última cadena después de delimitar LastCol = Rng.End (xlToRight) .Column 'organizar el texto en columnas a filas For i = 2 To LastCol Cells (10, i) .Cut Cells (StartRow, 2) StartRow = StartRow + 1 Siguiente i Fin Sub 

Si te gustó este blog, compártelo con tus amigos en Facebook. Además, puede seguirnos en Twitter y Facebook.

Nos encantaría saber de usted, háganos saber cómo podemos mejorar nuestro trabajo y hacerlo mejor para usted. Escríbanos al sitio de correo electrónico