
12-06-18, 07:53
|
 | Συντονιστής Όνομα: Σπύρος Τσιλιγιάννης Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010, Ms-Office 2013, Ms-Office 2016, Ms-Office 365 Γλώσσα λογισμικού Office: Ελληνική, Αγγλική | | Εγγραφή: 22-11-2011 Περιοχή: Αθήνα
Μηνύματα: 2.321
| |
Καλημέρα.
Η έκφραση: Cells(Rows.Count, 1).End(xlUp).Row
που σε «ελεύθερη» μετάφραση γίνεται: κελιά(γραμμές.μέτρησε, στην στήλη 1).πήγαινε στο τέλος των γραμμών(και
ανέβα προς τα πάνω).γραμμή
δίνεται σε μια μεταβλητή πχ LastRow =
την οποία ορίζουμε ως Long (Dim LastRow As Long)
να είναι δηλαδή μεγάλος ακέραιος και βρίσκει την τελευταία γραμμή μιας στήλης
που έχει δεδομένα (*βλέπε εικόνα)
Στην προκειμένη περίπτωση, θα επιστρέψει το 20 (γραμμή 20)
για να το χρησιμοποιήσουμε στον κώδικα μας και να πάρουμε την τιμή 200 για παράδειγμα
ή Cells(Rows.Count, 1).End(xlUp).Row+1
για να βάλουμε κάτι άλλο στο αμέσως πιο κάτω κενό κελί (γραμμή 21)
ή ότι άλλο ανάλογα με τις ανάγκες του κώδικα που χτίζουμε.
Η μέθοδος End(xlUp) μέσα στην έκφραση,
μας εξασφαλίζει το σωστό αποτέλεσμα,
καθώς σε σχέση με το αντίστοιχο End(xlDown)
θα παραβλέψει τα κενά κελιά της στήλης.
θα πάει στον πάτο του φύλλου και ανεβαίνοντας,
θα «τρακάρει» στο κελί της γραμμής 20,
πράγμα που είναι το ζητούμενο,
σε αντίθεση με το End(xlDown) που θα έδινε γραμμή 9, που δεν είναι το επιθυμητό. Ακόμα
Με όμοιο τρόπο, μπορούμε να έχουμε και την τελευταία γεμάτη στήλη μιας περιοχής,
με την έκφραση: LastCol = Cells(1, Columns.Count).End(xlToLeft).Column
και εδώ το LastCol ορίζεται ως Long |