Detectar celdas fusionadas en VBA Excel con MergeArea
Pregunta
Tengo un gran problema con este, tengo que detectar células fusionadas verticalmente y verticalmente de una mesa de Excel.Tengo que almacenar los carnes de primera celda, y la longitud del área fusionada.Itimé a través de la mesa con dos ciclos, línea por línea.
¿Cómo puedo usar la propiedad Mergearea para detectar las áreas fusionadas y no fusionadas? Si la celda no se fusiona, probablemente debería devolver el rango vacío, sin embargo, esto:
"Si CurrentRange no es nada entonces"
no está funcionando en absoluto.¿Algunas ideas? Muchas gracias.
Solución
Hay varios bits de código útiles para esto.
Coloque su cursor en una celda fusionada y haga estas preguntas en la ventana inmidiada:
¿Es la célula fusionada ActiveCell?
? Activecell.Mergecells
True
¿Cuántas células se fusionan?
? Activecell.MergeArea.Cells.Count
2
¿Cuántas columnas se fusionan?
? Activecell.MergeArea.Columns.Count
2
¿Cuántas filas se fusionan?
? Activecell.MergeArea.Rows.Count
1
¿Cuál es la dirección de rango fusionado?
? activecell.MergeArea.Address
$F$2:$F$3
Otros consejos
Mientras trabajas con celdas seleccionadas, como se muestra en @tbur, puede ser útil, tampoco es la única opción disponible.
Puede usar rango () así:
If Worksheets("Sheet1").Range("A1").MergeCells Then
Do something
Else
Do something else
End If
o:
If Worksheets("Sheet1").Range("A1:C1").MergeCells Then
Do something
Else
Do something else
End If
Alternativamente, puede usar células () :
If Worksheets("Sheet1").Cells(1, 1).MergeCells Then
Do something
Else
Do something else
End If