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

È stato utile?

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
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top