Delimitando el texto en una celda a la columna vertical
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 del texto en la celda se separa en múltiples subcadenas en múltiples celdas en 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 múltiples 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), DataType: = 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 el código
Sub texttocolumns() 'Declaring variables Dim StartRow, i, LastCol As Long Dim Rng As Range 'disabling the display alerts Application.DisplayAlerts = False 'Initializing the variable StartRow = 10 Set Rng = Range("A10") 'Separting the text based on the delimiter Rng.texttocolumns Destination:=Rng.Offset(0, 1), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Other:=True, OtherChar _ :="-" 'Finding the column number of cell containing the last string after delimiting LastCol = Rng.End(xlToRight).Column 'arranging the text in columns to rows For i = 2 To LastCol Cells(10, i).Cut Cells(StartRow, 2) StartRow = StartRow + 1 Next i End Sub
Si te gustó este blog, compártelo con tus amigos en Facebook y Facebook.
Nos encantaría saber de usted, háganos saber cómo podemos mejorar nuestro trabajo y hacerlo mejor para usted. Escríbanos a [email protected]