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.

¿Fue útil?

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top