VBA UsedRange | Πώς να βρείτε τον αριθμό των χρησιμοποιημένων σειρών και στηλών;

UsedRange, όπως υποδηλώνει το όνομα, είναι τα εύρη που ως κάποιο είδος τιμών σε αυτά, τα κενά κελιά δεν περιλαμβάνονται στις χρησιμοποιημένες περιοχές, οπότε στο VBA Χρησιμοποιούνται περιοχές είναι η ιδιότητα του αντικειμένου εύρους στο VBA για εκείνη την περιοχή κελιών σε σειρές και στήλες που δεν είναι κενές και έχουν ορισμένες τιμές σε αυτό.

UsedRange στο VBA Excel

Το UsedRange in VBA είναι μια ιδιότητα του φύλλου εργασίας που επιστρέφει ένα αντικείμενο εύρους που αντιπροσωπεύει το εύρος που χρησιμοποιείται (όλα τα κελιά Excel που χρησιμοποιούνται ή συμπληρώνονται σε ένα φύλλο εργασίας) σε ένα συγκεκριμένο φύλλο εργασίας. Πρόκειται για μια ιδιότητα που αντιπροσωπεύει την περιοχή που καλύπτεται ή οριοθετείται από μεταχειρισμένα κελιά από πάνω αριστερά και από τα τελευταία δεξιά κελιά που χρησιμοποιούνται σε ένα φύλλο εργασίας.

Μπορούμε να περιγράψουμε το «Μεταχειρισμένο κελί» ως κελί που περιέχει οποιονδήποτε τύπο, μορφοποίηση, τιμή κ.λπ. Μπορούμε επίσης να επιλέξουμε το τελευταίο κελί που χρησιμοποιήθηκε πατώντας τα πλήκτρα CTRL + END στο πληκτρολόγιο.

Ακολουθεί μια απεικόνιση του UsedRange σε ένα φύλλο εργασίας:

Μπορούμε να δούμε στο παραπάνω στιγμιότυπο οθόνης ότι το UsedRange είναι A1: D5.

Παραδείγματα ιδιότητας μεταχειρισμένου εύρους Excel VBA

Ας δούμε μερικά παραδείγματα παρακάτω για να δούμε πώς μπορεί να χρησιμοποιηθεί η ιδιότητα UsedRange σε ένα φύλλο εργασίας για την εύρεση του εύρους που χρησιμοποιείται στο VBA:

Μπορείτε να κάνετε λήψη αυτού του προτύπου VBA UsedRange Excel εδώ - Πρότυπο VBA UsedRange Excel

Παράδειγμα # 1

Ας υποθέσουμε ότι έχουμε ένα αρχείο Excel που περιέχει δύο φύλλα εργασίας και θέλουμε να βρούμε και να επιλέξουμε το χρησιμοποιημένο εύρος στο Φύλλο1.

Ας δούμε τι περιέχει το Sheet1:

Χρησιμοποιούμε την ιδιότητα UsedRange στο άμεσο παράθυρο VBA για να ολοκληρώσουμε αυτήν την εργασία. Το άμεσο παράθυρο VBA είναι ένα εργαλείο που βοηθά στη λήψη πληροφοριών σχετικά με αρχεία Excel, την γρήγορη εκτέλεση ή τον εντοπισμό σφαλμάτων οποιουδήποτε κώδικα VBA, ακόμη και αν ο χρήστης δεν γράφει μακροεντολές. Βρίσκεται στον Επεξεργαστή Visual Basic και μπορεί να προσεγγιστεί ως εξής:

  • Μεταβείτε στην καρτέλα Προγραμματιστής Excel και, στη συνέχεια, κάντε κλικ στο Visual Basic Editor ή πατήστε Alt + F11 για να ανοίξετε το παράθυρο του Visual Basic Editor.

Όταν το κάνετε αυτό, ανοίγει ένα παράθυρο ως εξής:

  • Πατήστε Ctrl + G για να ανοίξετε το άμεσο παράθυρο και πληκτρολογήστε τον κωδικό.

Το άμεσο παράθυρο μοιάζει με:

  • Ο ακόλουθος κωδικός θα επιλέξει το εύρος που χρησιμοποιείται στο Φύλλο1

Κώδικας:

Φύλλα εργασίας ("Φύλλο1"). Ενεργοποίηση True; ActiveSheet.UsedRange. Επιλέξτε True

Η πρώτη δήλωση του κώδικα θα ενεργοποιήσει το Φύλλο1 του αρχείου και η δεύτερη δήλωση θα επιλέξει το χρησιμοποιημένο εύρος σε αυτό το ενεργό φύλλο.

Κατά τη σύνταξη αυτού του κώδικα, βλέπουμε ότι το εύρος που χρησιμοποιείται στο Φύλλο1 επιλέγεται ως εξής:

Παράδειγμα # 2

Τώρα, ας πούμε σε αυτό το παράδειγμα ότι θέλουμε να βρούμε τον συνολικό αριθμό σειρών που χρησιμοποιούνται στο Φύλλο 1. Για να γίνει αυτό, ακολουθούμε τα παρακάτω βήματα:

  • Δημιουργήστε ένα όνομα μακροεντολής στη λειτουργική μονάδα.

Κώδικας:

 Sub TotalRows () End Sub 

  • Ορίστε τη μεταβλητή TotalRow ως ακέραιο στο VBA:

Κώδικας:

 Υπο TotalRow () Dim TotalRow ως ακέραιο End Sub 

  • Τώρα αντιστοιχίστε τη μεταβλητή TotalRow με τον τύπο για τον υπολογισμό ενός συνολικού αριθμού σειρών:

Κώδικας:

 Sub TotalRow () Dim TotalRow As Integer TotalRow = ActiveSheet.UsedRange.Rows.Count End Sub 

  • Τώρα η προκύπτουσα τιμή του TotalRow μπορεί να εμφανιστεί και να επιστραφεί χρησιμοποιώντας ένα πλαίσιο μηνυμάτων VBA (MsgBox) ως εξής:

Κώδικας:

 Sub TotalRow () Dim TotalRow ως Integer TotalRow = ActiveSheet.UsedRange.Rows.Count MsgBox TotalRow End Sub 

  • Τώρα εκτελούμε αυτόν τον κώδικα χειροκίνητα ή πατώντας F5 και λαμβάνουμε τον συνολικό αριθμό σειρών που χρησιμοποιούνται στο Φύλλο1 να εμφανίζεται σε ένα πλαίσιο μηνυμάτων ως εξής:

Έτσι, μπορούμε να δούμε στο παραπάνω στιγμιότυπο οθόνης ότι το "5" επιστρέφεται στο πλαίσιο μηνύματος και, όπως μπορούμε να δούμε στο Φύλλο1, ο συνολικός αριθμός σειρών στη χρησιμοποιημένη περιοχή είναι 5.

Παράδειγμα # 3

Ομοίως, αν θέλουμε να βρούμε τον συνολικό αριθμό στηλών που χρησιμοποιούνται στο Φύλλο1, θα ακολουθήσουμε τα ίδια βήματα όπως παραπάνω, εκτός από μια μικρή αλλαγή στον κώδικα ως εξής:

Κώδικας:

 Sub TotalCols () Dim TotalCol As Integer TotalCol = ActiveSheet.UsedRange.Columns.Count MsgBox TotalCol End Sub 

Τώρα όταν εκτελούμε αυτόν τον κώδικα χειροκίνητα ή πατώντας F5, λαμβάνουμε τον συνολικό αριθμό στηλών που χρησιμοποιείται στο Φύλλο1 να εμφανίζεται σε ένα πλαίσιο μηνυμάτων ως εξής:

Έτσι, το '4' επιστρέφεται στο πλαίσιο μηνύματος και, όπως μπορούμε να δούμε στο Φύλλο1, ο συνολικός αριθμός στηλών στο χρησιμοποιημένο εύρος είναι 4.

Παράδειγμα # 4

Τώρα, ας πούμε ότι θέλουμε να βρούμε τον αριθμό γραμμής και στήλης που χρησιμοποιήθηκε τελευταία στο Φύλλο2 του αρχείου. Ας δούμε τι περιέχει το Sheet2:

Για να το κάνουμε αυτό, ακολουθούμε τα παρακάτω βήματα:

  • Δημιουργήστε ένα όνομα μακροεντολής στη λειτουργική μονάδα.

Κώδικας:

 Υπο LastRow () End Sub 

  • Ορίστε τη μεταβλητή LastRow ως ακέραιο.

Κώδικας:

 Sub LastRow () Dim LastRow ως Integer End Sub 

  • Τώρα αντιστοιχίστε τη μεταβλητή LastRow με τον τύπο για τον υπολογισμό του αριθμού σειράς που χρησιμοποιήθηκε τελευταία:

Κώδικας:

 Sub LastRow () Dim LastRow ως Integer LastRow = ActiveSheet.UsedRange.SpecialCells (xlCellTypeLastCell). Sub End End 

Η μέθοδος SpecialCells στο Excel VBA επιστρέφει ένα αντικείμενο εύρους που αντιπροσωπεύει μόνο τους τύπους κελιών που έχουν καθοριστεί. Η σύνταξη για τη μέθοδο SpecialCells είναι:

RangeObject.SpecialCells (Τύπος, Τιμή)

Στον παραπάνω κώδικα, xlCellTypeLastCell: αντιπροσωπεύει το τελευταίο κελί στη χρησιμοποιούμενη περιοχή.

Σημείωση: Το 'xlCellType' θα περιλαμβάνει ακόμη και κενά κελιά που είχαν αλλάξει την προεπιλεγμένη μορφή οποιουδήποτε από τα κελιά τους.
  • Τώρα η προκύπτουσα τιμή του LastRow μπορεί να εμφανιστεί και να επιστραφεί χρησιμοποιώντας ένα πλαίσιο μηνυμάτων (MsgBox) ως εξής:

Κώδικας:

 Sub LastRow () Dim LastRow ως Integer LastRow = ActiveSheet.UsedRange.SpecialCells (xlCellTypeLastCell). Σειρά MsgBox LastRow End Sub 

  • Τώρα τρέχουμε αυτόν τον κώδικα χειροκίνητα ή πατώντας F5, και λαμβάνουμε τον αριθμό γραμμής που χρησιμοποιήθηκε τελευταία στο Φύλλο2 να εμφανίζεται σε ένα πλαίσιο μηνυμάτων ως εξής:

Έτσι, μπορούμε να δούμε στο παραπάνω στιγμιότυπο οθόνης ότι το "12" επιστρέφεται στο πλαίσιο μηνύματος και, όπως μπορούμε να δούμε στο Φύλλο2, ο αριθμός σειράς που χρησιμοποιήθηκε τελευταία είναι 12.

Ομοίως, αν θέλουμε να βρούμε τον αριθμό στήλης που χρησιμοποιήθηκε τελευταία στο Φύλλο2, θα ακολουθήσουμε τα ίδια βήματα όπως παραπάνω, εκτός από μια μικρή αλλαγή στον κώδικα ως εξής:

Κώδικας:

 Sub LastCol () Dim LastCol ως Integer LastCol = ActiveSheet.UsedRange.SpecialCells (xlCellTypeLastCell). Column MsgBox LastCol End Sub 

Τώρα όταν εκτελούμε αυτόν τον κώδικα χειροκίνητα ή πατώντας το F5, εμφανίζεται ο αριθμός στήλης που χρησιμοποιήθηκε τελευταία στο Φύλλο2 που εμφανίζεται σε ένα πλαίσιο μηνυμάτων ως εξής:

Έτσι, μπορούμε να δούμε στο παραπάνω στιγμιότυπο οθόνης ότι το «3» επιστρέφεται στο πλαίσιο μηνύματος και, όπως μπορούμε να δούμε στο Φύλλο2, ο αριθμός της τελευταίας στήλης που χρησιμοποιήθηκε είναι 3.

Πράγματα που πρέπει να θυμάστε για το VBA UsedRange

  • Το VBA UsedRange είναι ορθογώνιο εύρος.
  • Το VBA UsedRange περιλαμβάνει κελιά με δεδομένα ή μορφοποίηση κ.λπ.
  • Το Excel VBA UsedRange δεν περιλαμβάνει απαραίτητα το επάνω αριστερό κελί του φύλλου εργασίας.
  • Το UsedRange δεν θεωρεί απαραίτητα το ενεργό κελί ως χρησιμοποιείται.
  • Το UsedRange μπορεί να χρησιμοποιηθεί για να βρείτε την τελευταία γραμμή που χρησιμοποιήθηκε στο VBA και για να επαναφέρετε το χρησιμοποιημένο εύρος κ.λπ.
  • Πατώντας τα πλήκτρα συντόμευσης Excel CTRL + SHIFT + ENTER σε ένα πληκτρολόγιο μπορεί να χρησιμοποιηθεί για την επέκταση της επιλογής από ένα ενεργό κελί στο τελευταίο χρησιμοποιημένο κελί σε ένα φύλλο εργασίας.