Question

Je vais avoir un problème avec celui-ci - je dois détecter horizontalement et verticalement des cellules à une table Excel.Je dois stocker les premières coordonnées de cellules et la longueur de la zone fusionnée.I ITERER à travers la table avec deux pour cycles, ligne par ligne.

Comment puis-je utiliser la propriété mergeaea pour détecter les zones fusionnées et non fusionnées? Si la cellule n'est pas fusionnée, il devrait probablement retourner la plage vide, cependant, ceci:

"Si CurrentRange n'est rien alors"

ne fonctionne pas du tout.Des idées? Merci beaucoup.

Était-ce utile?

La solution

Il y a plusieurs bits de code utiles pour cela.

Placez votre curseur dans une cellule fusionnée et posez ces questions dans la fenêtre Immidiate:

est l'ActiveCell une cellule fusionnée?

? Activecell.Mergecells
 True

Combien de cellules sont fusionnées?

? Activecell.MergeArea.Cells.Count
 2

Combien de colonnes fusionnées?

? Activecell.MergeArea.Columns.Count
 2

Combien de lignes sont fusionnées?

? Activecell.MergeArea.Rows.Count
  1

Quelle est l'adresse de la plage fusionnée?

? activecell.MergeArea.Address
  $F$2:$F$3

Autres conseils

Tout en travaillant avec des cellules sélectionnées comme indiqué par @TBUR peut être utile, ce n'est pas non plus la seule option disponible.

Vous pouvez utiliser gamme () comme:

If Worksheets("Sheet1").Range("A1").MergeCells Then
  Do something
Else
  Do something else
End If

ou:

If Worksheets("Sheet1").Range("A1:C1").MergeCells Then
  Do something
Else
  Do something else
End If

alternativement, vous pouvez utiliser cellules () :

If Worksheets("Sheet1").Cells(1, 1).MergeCells Then
  Do something
Else
  Do something else
End If

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top