Rileva le cellule unite in VBA Excel con MergeAreaa
Domanda
Sto avendo un problema con questo - devo rilevare le cellule unite orizzontalmente e verticalmente da un tavolo Excel.Devo conservare le prime coordinarie celle e la lunghezza dell'area frata.I iterato attraverso il tavolo con due for-cicli, linea per linea.
Come posso utilizzare la proprietà MergeAreaa per rilevare le aree fuse e non uniformi? Se la cella non è fusa, probabilmente dovrebbe restituire la gamma vuota, tuttavia, questa:
"Se CurrentRange non è nulla,"
non funziona affatto.Qualche idea? Grazie mille
Soluzione
Ci sono diversi bit utili di codice per questo.
Posiziona il cursore in una cella fusa e fai queste domande nella finestra inserisci:
è l'ActiveCell una cella fusa?
? Activecell.Mergecells
True
.
Quante celle sono fuse?
? Activecell.MergeArea.Cells.Count
2
.
Quante colonne sono fuse?
? Activecell.MergeArea.Columns.Count
2
.
Quante righe sono fuse?
? Activecell.MergeArea.Rows.Count
1
.
Qual è l'indirizzo dell'intervallo fuso?
? activecell.MergeArea.Address
$F$2:$F$3
. Altri suggerimenti
Mentre si lavora con celle selezionate come mostrato da @tbur può essere utile, non è anche l'unica opzione disponibile.
È possibile utilizzare Range () Come SO:
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
.
In alternativa, è possibile utilizzare le celle () :
If Worksheets("Sheet1").Cells(1, 1).MergeCells Then
Do something
Else
Do something else
End If
.