Note: The other languages of the website are Google-translated. Back to English

¿Cómo concatenar columnas de celda y mantener el color del texto en Excel?

Como todos sabemos, al concatenar o combinar columnas de celdas en una columna, el formato de celda (como el color de la fuente del texto, el formato de los números, etc.) se perderá. En este artículo, presentaré algunos trucos para combinar las columnas de las celdas en una y mantener el color del texto lo más fácilmente posible en Excel.

Concatenar columnas de celda y mantener el color de la fuente del texto con el código VBA


Concatenar columnas de celda y mantener el color de la fuente del texto con el código VBA

Para terminar esta tarea en Excel, el siguiente código VBA puede hacerle un favor, haga lo siguiente:

1. Mantenga pulsado el ALT + F11 teclas para abrir el Microsoft Visual Basic para aplicaciones ventana.

2. Hacer clic recuadro > Móduloy pegue el siguiente código en el Ventana de módulo.

Código de VBA: concatenar columnas de celda y mantener el color del texto:

Sub MergeFormatCell()
'Updateby Extendoffice
    Dim xSRg As Range
    Dim xDRg As Range
    Dim xRgEachRow As Range
    Dim xRgEach As Range
    Dim xRgVal As String
    Dim I As Integer
    Dim xRgLen As Integer
    Dim xSRgRows As Integer
    Dim xAddress As String
    On Error Resume Next
    xAddress = ActiveWindow.RangeSelection.Address
    Set xSRg = Application.InputBox("Please select cell columns to concatenate:", "KuTools For Excel", xAddress, , , , , 8)
    If xSRg Is Nothing Then Exit Sub
    xSRgRows = xSRg.Rows.Count
    Set xDRg = Application.InputBox("Please select cells to output the result:", "KuTools For Excel", , , , , , 8)
    If xDRg Is Nothing Then Exit Sub
    Set xDRg = xDRg(1)
    For I = 1 To xSRgRows
        xRgLen = 1
        With xDRg.Offset(I - 1)
            .Value = vbNullString
            .ClearFormats
            Set xRgEachRow = xSRg(1).Offset(I - 1).Resize(1, xSRg.Columns.Count)
            For Each xRgEach In xRgEachRow
                .Value = .Value & Trim(xRgEach.Value) & " "
            Next
            For Each xRgEach In xRgEachRow
                xRgVal = xRgEach.Value
                With .Characters(xRgLen, Len(Trim(xRgVal))).Font
                .Name = xRgEach.Font.Name
                .FontStyle = xRgEach.Font.FontStyle
                .Size = xRgEach.Font.Size
                .Strikethrough = xRgEach.Font.Strikethrough
                .Superscript = xRgEach.Font.Superscript
                .Subscript = xRgEach.Font.Subscript
                .OutlineFont = xRgEach.Font.OutlineFont
                .Shadow = xRgEach.Font.Shadow
                .Underline = xRgEach.Font.Underline
                .ColorIndex = xRgEach.Font.ColorIndex
                End With
                xRgLen = xRgLen + Len(Trim(xRgVal)) + 1
            Next
        End With
    Next I
End Sub

3. Entonces presione F5 para ejecutar este código, y aparece un cuadro emergente para recordarle que seleccione el rango de datos que desea combinar con el color del texto, vea la captura de pantalla:

4. Y luego haz clic OK, aparece otro cuadro de diálogo, seleccione las celdas donde desea generar los resultados combinados, vea la captura de pantalla:

5. Luego haga clic OK botón, las columnas se han concatenado sin perder el color del texto como se muestra en la siguiente captura de pantalla:

Nota:: Si los datos que deben combinarse incluyen números, el código de macro no puede funcionar correctamente.


Las mejores herramientas de productividad de oficina

Kutools para Excel resuelve la mayoría de sus problemas y aumenta su productividad en un 80%

  • Reutilizar: Inserte rápidamente fórmulas complejas, gráficos y cualquier cosa que hayas usado antes; Cifrar celdas con contraseña; Crear lista de distribución y enviar correos electrónicos ...
  • Barra de súper fórmula (edite fácilmente varias líneas de texto y fórmulas); Diseño de lectura (leer y editar fácilmente un gran número de celdas); Pegar en rango filtrado...
  • Combinar celdas / filas / columnas sin perder datos; Contenido de celdas divididas; Combinar filas / columnas duplicadas... Prevenir celdas duplicadas; Comparar rangos...
  • Seleccione Duplicado o Único Filas; Seleccionar filas en blanco (todas las celdas están vacías); Super Find y Fuzzy Find en muchos libros de trabajo; Selección aleatoria ...
  • Copia exacta Varias celdas sin cambiar la referencia de la fórmula; Crear referencias automáticamente a varias hojas; Insertar viñetas, Casillas de verificación y más ...
  • Extraer texto, Agregar texto, Eliminar por posición, Quitar espacio; Crear e imprimir subtotales de paginación; Convertir entre contenido de celdas y comentarios...
  • Súper filtro (guardar y aplicar esquemas de filtros a otras hojas); Orden avanzado por mes / semana / día, frecuencia y más; Filtro especial en negrita, cursiva ...
  • Combinar libros y hojas de trabajo; Combinar tablas basadas en columnas clave; Dividir datos en varias hojas; Conversión por lotes de xls, xlsx y PDF...
  • Más de 300 potentes funciones. Compatible con Office/Excel 2007-2021 y 365. Compatible con todos los idiomas. Fácil implementación en su empresa u organización. Funciones completas Prueba gratuita de 30 días. Garantía de devolución de dinero de 60 días.
pestaña kte 201905

Office Tab lleva la interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil

  • Habilite la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
  • Abra y cree varios documentos en nuevas pestañas de la misma ventana, en lugar de en nuevas ventanas.
  • ¡Aumenta su productividad en un 50% y reduce cientos de clics del mouse todos los días!
officetab parte inferior
Comentarios (9)
Aún no hay calificaciones. ¡Sé el primero en calificar!
Este comentario fue minimizado por el moderador en el sitio
Este código funciona muy bien. Pero, ¿cómo agrego espacio antes o después del texto?
Este comentario fue minimizado por el moderador en el sitio
Hola,
Este método funciona bien, hasta que xRgLen es superior a 255.
Parece que este parámetro es un byte :-(
¿Cómo se puede superar esta limitación?
Este comentario fue minimizado por el moderador en el sitio
Fantástica la macro de concatenar cadena de texto conservando formato de origen. En mi caso no funcionaba con F5, pero en la pestaña macro, modificar y opciones me permite entrar en el modo de ejecución con CTRL+letra y funciona de maravilla. Muchas gracias.
Este comentario fue minimizado por el moderador en el sitio
Habria manera de hacerlo con numeros?
Este comentario fue minimizado por el moderador en el sitio
Gracias por el código.
Si el texto tiene "( )", por ejemplo "tomate (tomates)". No funciona tan bien. ¿Hay algo que modificar para trabajar con "( ) "?
Este comentario fue minimizado por el moderador en el sitio
Hola Rah,
¿Cómo estás? Si el texto tiene "( )", no necesitamos cambiar el código VBA. Consulte la captura de pantalla, el texto "tomate (tomates)" se puede combinar con éxito con otras columnas de celdas en una sola columna. Espero que pueda ayudarte.
Atentamente,
Mandy
Este comentario fue minimizado por el moderador en el sitio
gracias por el codigo!
¿Se puede actualizar automáticamente la columna concatenada si se realiza algún cambio?
Este comentario fue minimizado por el moderador en el sitio
Hola Kathy,
Lo sentimos, en este momento, no hay una buena manera de hacerlo, debe ejecutar el código nuevamente después de cambiar el contenido de la celda. 😂
¡Gracias!
Este comentario fue minimizado por el moderador en el sitio
Bien, gracias por tu respuesta
No hay comentarios publicados aquí todavía
Deje sus comentarios
Publicar como invitado
×
Califica esta publicación:
0   Personajes
Ubicaciones sugeridas

Seguinos

Copyright © 2009 - www.extendoffice.com. | Reservados todos los derechos. Energizado por ExtendOffice, | Mapa del Sitio
Microsoft y el logotipo de Office son marcas comerciales o marcas comerciales registradas de Microsoft Corporation en los Estados Unidos y / o en otros países.
Protegido por Sectigo SSL