Ma première colonne est un index, avec des nombres en augmentation monotone, qui se termine à un point non prévisible. Maintenant, je veux savoir combien d'entrées cette colonne contient. Y a-t-il un meilleur moyen que d'itérer à travers cela et de faire attention à une cellule vide?
Une façon consiste à: (Suppose que la colonne d'index commence à A1)
MsgBox Range("A1").End(xlDown).Row
Qui recherche la 1ère cellule inoccupée vers le bas à partir de A1 et vous montre son numéro de ligne ordinale.
Vous pouvez sélectionner la cellule vide suivante avec:
Range("A1").End(xlDown).Offset(1, 0).Select
Si vous avez besoin de la fin d'un ensemble de données (y compris les blancs), essayez: Range ("A: A"). SpecialCells (xlLastCell) .Row
Si vous souhaitez rechercher la dernière cellule remplie dans une colonne particulière, la meilleure méthode est la suivante:
Range("A" & Rows.Count).End(xlUp).Row
Ce code utilise la toute dernière cellule de la colonne entière (65536 pour Excel 2003, 1048576 dans les versions ultérieures), puis recherchez la première cellule remplie au-dessus. Cela a la capacité d'ignorer les "ruptures" dans vos données et de trouver la vraie dernière ligne.
Vous pouvez aussi utiliser
Cells.CurrentRegion
pour vous donner une plage représentant les limites de vos données sur la feuille active actuelle
Msdn dit sur le sujet
Renvoie un objet Range qui représente la région actuelle. La région actuelle est une plage limitée par toute combinaison de lignes vides et de colonnes vides. Lecture seulement.
Ensuite, vous pouvez déterminer le nombre de colonnes via
Cells.CurrentRegion.Columns.Count
et le nombre de lignes via
Cells.CurrentRegion.Rows.Count
Vous pouvez également utiliser:
UsedRange.Rows.Count
Pour trouver la dernière colonne remplie, utilisez ce qui suit:
lastColumn = ActiveSheet.Cells(1, Columns.Count).End(xlToLeft).Column