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