No siempre podemos evitar el uso de "combinar y centrar", ya sea porque el rango a unificar es vertical (no exste la posibilidad de "centrar en la selección" verticalmente) o porque estamos lidiando con un cuaderno que recibimos de algún colega.
Si queremos "descombinar" todos los rangos combinados en una hoja, podemos seleccionar todas las celdas de la hoja (Ctrl-E o clic en el cuadrdado a la izquierda y arriba de A1) y pulsar el botón "Combinar y centrar". Si queremos reemplazar el "combinar y centrar" por el "centrar en la selección", podemos usar la macro que aparece en el post mencionado.
Si queremos marcar los rangos de celdas combinadas en una hoja de Excel, podemos usar esta macro. Las áreas combinadas aparecerán con fondo rojo; por supuesto, podemos adaptar el código para dar cualquier otro formato (por ejemplo, borde)
Sub mark_merged_cells()
Dim rngSearchArea As Range, rngCell As Range
Set rngSearchArea = Range(Cells(1, 1), _
Range(Cells.SpecialCells(xlCellTypeLastCell).Address))
For Each rngCell In rngSearchArea
If rngCell.MergeCells = True Then
rngCell.Interior.Color = 190
End If
Next rngCell
End Sub
Sub select_merged_cells()
Si queremos sólo seleccionar las áreas combinadas, usamos esta macro
Sub select_merged_cells()
Dim rngSearchArea As Range, rngCell As Range
Dim rngTemp As Range
Set rngSearchArea = Range(Cells(1, 1), _
Cells.SpecialCells(xlCellTypeLastCell).Address)
For Each rngCell In rngSearchArea
If rngCell.MergeCells = True Then
If rngTemp Is Nothing Then
Set rngTemp = rngCell
Else
Set rngTemp = Union(rngTemp, rngCell)
End If
End If
Next rngCell
rngTemp.Select
End Sub
Dim rngSearchArea As Range, rngCell As Range
Dim rngTemp As Range
Set rngSearchArea = Range(Cells(1, 1), _
Cells.SpecialCells(xlCellTypeLastCell).Address)
For Each rngCell In rngSearchArea
If rngCell.MergeCells = True Then
If rngTemp Is Nothing Then
Set rngTemp = rngCell
Else
Set rngTemp = Union(rngTemp, rngCell)
End If
End If
Next rngCell
rngTemp.Select
End Sub
En ambas macros definimos el área de búsqueda desde la celda A1 hasta la última celda usada en la hoja (para evitar que la macro corra por toda la eternidad) con
Set rngSearchArea = Range(Cells(1, 1), Range(Cells.SpecialCells(xlCellTypeLastCell).Address))
Para seleccionar simultáneamente los distintos rangos en la segunda macro, usamos el método Union.