Comment puis-je obtenir la dernière ligne d'une plage déjà spécifiée et définie et est connue pour contenir les données que je veux? Il me semble que cela devrait être une propriété de quelque sorte comme Maintenant, le problème est que ma plage ne commence pas dans la ligne 1 de la feuille de source - elle commence dans la rangée 3 et passe à travers la ligne 756. Ci-dessous est l'adresse de ma plage comme vue par le débogueur et elle est définie correctement . Mais puisqu'il commence à la rangée 3 en utilisant L'adresse présentée dans le débogueur est correcte. Tout ce que je veux, c'est d'extraire la valeur de la ligne de la cellule droite inférieure dans la plage spécifiée qui serait 756. Je peux analyser la valeur d'adresse et le faire si nécessaire, mais je me demande si Excel VBA a une manière plus simple de Atteindre cela? P> P> gamme.row code> mais gamme.Orow donne le numéro premier fort> de ligne dans la gamme et je veux que le dernier em> < / Strong> Numéro de ligne. rows.count code> ne fonctionnera pas, car il en résulte 754 au lieu de 756. p> des lignes.Count code> est un référence à la plage qui est un sous-ensemble de la feuille d'origine. Je souhaite le numéro de ligne de la dernière ligne de la feuille de calcul d'origine, exactement comme dans l'adresse ci-dessous. En d'autres termes, il y a une propriété sur l'adresse qui me donnera le 756? P>
4 Réponses :
Cela ne fonctionnera que si ma gamme spécifiée commence dans la ligne 1 de ma feuille de calcul. La gamme est un sous-ensemble de la feuille de calcul et peut commencer n'importe où. J'ai une feuille de calcul avec 756 lignes seulement 754 qui sont pertinentes. Mais je veux faire référence à la dernière ligne de la feuille de calcul originale qui pourrait être comptez + ou - un montant inconnu.
@ Nelda.TechSpiress: pourquoi ne pas l'essayer?
@ Nelda.TechSpirsed Non, cela fonctionnera avec ce qui est jamais rangé. dans votre exemple transactionsDatarange.row code> retournera 3 code> et transactionsDatarange.rows.count code> retournera 754 code> ou le nombre de rangées dans la gamme afin que le calcul est 3 + 754-1 code> qui est 756 code>
@ Nelda.TechSpiress Avez-vous essayé la formule exacte que j'ai donnée. Il retournera 756 car il ajoute la ligne de départ de la plage au nombre de lignes et soustrait 1 code> tandis que la plage commence.
Oui, cela a fonctionné après que je l'ai saisi correctement. Mais je cherchais une propriété qui a explicitement travaillé avec la gamme donnée sans que aucun calcul soit exécuté, c'est pourquoi j'ai accepté la réponse de SJR.
@ Nelda.TechSpiress Je n'ai aucun problème avec vous en choisissant l'autre réponse, je voulais juste vous assurer que vous avez vu que cela a fonctionné. J'aurais choisi l'autre aussi.
une approche alternative
Merci d'avoir accepté la réponse, mais Scott fonctionne.
Sub TestMe()
Debug.Print LastRowOfRange(Range("D15:E199"))
End Sub
Function LastRowOfRange(myRange) As Long
LastRowOfRange = myRange.Rows.Count + myRange.Row - 1
End Function
Spécifie la dernière cellule de la plage.
Sub test()
Dim transactionsDataRange As Range
Dim rngT As Range
Set transactionsDataRange = Range("$A$3:$AP$756")
With transactionsDataRange
Set rngT = .Cells(.Rows.Count, .Columns.Count)
End With
MsgBox rngT.Row
End Sub