Código VBA para seleccionar todas las celdas fusionadas

Las celdas fusionadas pueden resultar frustrantes cuando se utiliza código VBA, ya que simplemente no funcionan de la misma manera que las celdas normales. Incluso cuando se utiliza Excel sin VBA, las celdas combinadas provocan una gran cantidad de mensajes de error frustrantes.

Incluso si usted no los usa, muchos otros usuarios sí lo hacen. Por lo tanto, encontrará celdas combinadas en otros libros que le envíen; no hay forma de evitarlas.

Desafortunadamente, en la mayoría de las circunstancias, no es tan sencillo como simplemente separarlos. Esto podría provocar algunos cambios no deseados en la hoja de trabajo (aunque es probable que la mayoría de ellos sean cambios de presentación). Una vez que hayamos identificado las celdas fusionadas podemos decidir qué enfoque tomar para cada una de ellas.

¿Qué celdas están fusionadas? ¿Cómo podemos saberlo fácilmente? Como puede resultar difícil identificarlos, el siguiente código VBA los seleccionará todos por usted:

  • del rango utilizado de la hoja de trabajo si solo se selecciona una celda
  • del rango seleccionado si se selecciona más de una celda.
Sub SelectAllMergedCells()Dim c As RangeDim mergedCells As RangeDim fullRange As RangeDim rangeDescription As String'Count celdas en la selección. Si hay 1 celda, busque el rango usado; de lo contrario, busque el rango seleccionado. Si Selection.Cells.Count 1, luego establezca fullRange = Selection rangeDescription = "celdas seleccionadas"; de lo contrario, establezca fullRange = ActiveSheet.UsedRange rangeDescription = "active range"Fin If'Recorra cada celda en el rango elegido de hoja activa Para cada c En rango completo Si c.MergeCells = True Entonces 'Si encuentra la primera celda, establezca la variable; de ​​lo contrario, agregue 'a la lista existente de celdas Si fusionadasCells no es nada, entonces establezca fusionadas = c De lo contrario, establezca fusionadas = Union( mergedCells, c) End If End IfNext'Seleccione el rango de celdas desbloqueadas Si no mergedCells no es nada, entonces mergedCells.SelectElse MsgBox "No hay celdas combinadas en " _ rangeDescription ": " fullRange.AddressEnd IfEnd Sub

Ahora que todas las celdas fusionadas están seleccionadas, depende de ti qué hacer con ellas.

Si desea convertir celdas fusionadas en celdas centradas en la selección, consulte esta publicación .


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir

Este sitio web utiliza cookies para mejorar la experiencia del usuario y garantizar un funcionamiento eficiente. Al utilizar nuestro sitio web, aceptas todas las cookies de acuerdo con nuestra política de cookies. Leer mas...