Détecter les cellules fusionnées dans VBA Excel avec MergeArea
j'ai un gros problème avec celui - ci-je dois détecter horizontalement et verticalement des cellules fusionnées à partir d'une table excel. Je dois stocker les premières cellules coords, et la longueur de la zone fusionnée. Je passe à travers le tableau avec deux cycles, ligne par ligne.
Comment puis-je utiliser la propriété MergeArea pour détecter les zones fusionnées et non fusionnées? Si la cellule n'est pas fusionnée, elle devrait probablement retourner la plage vide, cependant, ceci:
"si currentRange N'est rien Ensuite,"
ne fonctionne pas du tout. Des idées? Merci beaucoup.
2 réponses
il y a plusieurs bits de code utiles pour cela.
Placez votre curseur dans un fusionné tapez et posez ces questions dans la fenêtre Immidiate:
la cellule activecell est-elle fusionnée?
? Activecell.Mergecells
True
Combien de cellules sont fusionnées?
? Activecell.MergeArea.Cells.Count
2
combien de colonnes sont 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:$F
alors que travailler avec des cellules sélectionnées comme montré par @tbur peut être utile, ce n'est pas la seule option disponible.
Vous pouvez utiliser Range () comme ceci:
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