Cómo fusionar celdas en excel usando código vba
En VBA, existe un método «FUSIONAR» que puede utilizar para fusionar un rango de celdas o incluso varios rangos en uno. Este método tiene un argumento «Across» que es opcional. Si especifica VERDADERO, fusionará cada fila del rango por separado, y si especifica FALSO, fusionará todo el rango en uno.
Pasos para usar VBA para fusionar celdas:
- Primero, debe definir el rango de celdas que desea fusionar.
- Después de eso, escriba un punto (.) para obtener la lista de propiedades y métodos y seleccione «Fusionar» de esa lista o puede escribirlo directamente.
- Después de eso, debe establecer el argumento «A través» en VERDADERO o FALSO.
- Al final, ejecute este código para fusionar el rango.
Aquí está el código.
Range("A1:A2").Merge False
Y si desea fusionar filas en todo el rango, puede usar VERDADERO para el argumento transversal.
Selection.Merge Across:=True
En el código anterior, ha seleccionado como rango, método de combinación y ancho como verdadero. Y fusionó todas las filas en el rango seleccionado.
Ahora digamos que desea fusionar el rango de celdas de otra hoja de trabajo, no necesita habilitarlo primero. Simplemente puede consultar la hoja de cálculo primero y luego usar los métodos de combinación con el renego que desea fusionar.
Worksheets("Sheet1").Range("A1:A2").Merge
De manera similar, también puede hacer referencia a un libro de trabajo especificando el nombre del libro de trabajo.
Workbooks("Book1.xlsx").Worksheets("Sheet1").Range("A1:A2").Merge
Fusionar un rango y alinear el contenido de las celdas
Ahora, cuando combinas dos o más celdas, necesitas alinear el contenido que tienes en la celda. Mire la instantánea a continuación donde fusionó las celdas A1 y A2 y el valor en las celdas está alineado hacia abajo. Para resolver este problema, puede utilizar la propiedad de alineación y alinear el contenido de la celda en el centro y en el medio para que le resulte fácil de leer.
With Range("A1:A2") .Merge .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter End With
Combina texto y luego fusiona
Hablemos de un escenario de la vida real. Tienes texto en un rango de celdas y necesitas fusionar esas celdas, pero no quieres perder el contenido que tienes. Bueno, puedes escribir un bucle de código en todo el rango usando cada uno y combinar texto y luego agregarlo al rango combinado al final.
- En la primera parte, tiene variables que puede utilizar para almacenar valores de rango y configurarse.
- En la segunda parte tienes un LOOP para combinar los valores de cada celda para crear una nueva cadena con eso.
- En la tercera parte, combine el rango, agregue la cadena combinada, aplique ajuste de palabras y alinee el contenido de la celda.
Aquí está el código completo.
Sub vba_merge_with_values() Dim val As String Dim rng As Range Set rng = Range("A1:A10") For Each Cell In rng val = val & " " & Cell.Value Next Cell With rng .Merge .Value = Trim(val) .WrapText = True .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter End With End Sub