Μεταβλητό εύρος VBA | Παραδείγματα μεταβλητού εύρους στο Excel VBA

Μεταβλητή Excel VBA στο εύρος

Οι μεταβλητές είναι η καρδιά και η ψυχή οποιωνδήποτε μεγάλων έργων VBA δεδομένου ότι οι μεταβλητές είναι καρδιά και ψυχή, τότε το είδος του τύπου δεδομένων που τους αποδίδουμε είναι επίσης ένας πολύ σημαντικός παράγοντας από αυτή την άποψη. Σε πολλά προηγούμενα άρθρα μας, έχουμε συζητήσει πολλές φορές για τις μεταβλητές και τη σημασία του τύπου δεδομένων τους. Μία τέτοια μεταβλητή και τύπος δεδομένων είναι το "Range Variable", σε αυτό το ειδικό ειδικό άρθρο θα δώσουμε έναν πλήρη οδηγό για το "Range Variable" στο excel VBA.

Τι είναι η μεταβλητή εύρους στο Excel VBA;

Όπως κάθε άλλη μεταβλητή εύρος στο VBA, η μεταβλητή είναι επίσης μια μεταβλητή αλλά είναι μια «μεταβλητή αντικειμένου» που χρησιμοποιούμε για να ορίσουμε την αναφορά του συγκεκριμένου εύρους κελιών.

Όπως κάθε άλλη μεταβλητή, μπορούμε να δώσουμε οποιοδήποτε όνομα στη μεταβλητή, αλλά ο τύπος δεδομένων που τους εκχωρούμε θα πρέπει να είναι "Range". Μόλις ο τύπος δεδομένων εκχωρηθεί στη μεταβλητή, γίνεται "Μεταβλητή αντικειμένου" και σε αντίθεση με μια άλλη μεταβλητή, δεν μπορούμε να αρχίσουμε να χρησιμοποιούμε τη μεταβλητή προτού ορίσουμε την αναφορά αντικειμένων σε περίπτωση μεταβλητών αντικειμένων.

Έτσι, αφού δηλώσουμε τη μεταβλητή πρέπει να χρησιμοποιήσουμε τη λέξη-κλειδί «SET» για να ορίσουμε την αναφορά αντικειμένου, δηλαδή αντικείμενο Range σε αυτήν την περίπτωση.

Εντάξει, τώρα θα δούμε μερικά από τα παραδείγματα του VBA Range Variables πρακτικά.

Παραδείγματα μεταβλητής εύρους στο Excel VBA

Μπορείτε να πραγματοποιήσετε λήψη αυτού του προτύπου VBA Variable Range Excel εδώ - Πρότυπο VBA Variable Range Excel

Για παράδειγμα, ας υποθέσουμε ότι θέλετε να επιλέξετε το εύρος κελιών από A2 έως B10 για την παρακάτω εικόνα στιγμιότυπου οθόνης.

Για να επιλέξετε αυτό το αναφερόμενο εύρος κελιών όλα αυτά ενώ έχουμε αντικείμενο RANGE και μέσα στο αντικείμενο εύρους, αναφέραμε τη διεύθυνση κελιού σε διπλά εισαγωγικά.

Κώδικας:

 Sub Range_Variable_Example () Range ("A2: B10") End Sub 

Μόλις αναφέρεται το εύρος των κελιών χρησιμοποιώντας το αντικείμενο RANGE εάν βάλετε τελεία, θα δούμε όλες τις ιδιότητες και τις μεθόδους που σχετίζονται με αυτό το αντικείμενο εύρους.

Κώδικας:

Sub Range_Variable_Example () Range ("A2: B10"). Τέλος Υποτ

Επειδή πρέπει να επιλέξουμε τα αναφερόμενα κελιά απλώς επιλέξτε τη μέθοδο "Επιλογή" από τη λίστα IntelliSense.

Κώδικας:

 Sub Range_Variable_Example () Range ("A2: B10"). Επιλέξτε End Sub 

Εκτελέστε τον κωδικό και θα επιλέξει τα αναφερόμενα κελιά.

Αυτό είναι προφανές δεν είναι, αλλά φανταστείτε το σενάριο χρήσης του ίδιου εύρους στο μακρύ έργο VBA, ας πούμε εκατοντάδες φορές, γράφοντας τον ίδιο κωδικό "Range (" A2: A10 ")" 100 φορές θα χρειαστεί λίγος χρόνος, αλλά αντ 'αυτού θα δηλώσουμε τη μεταβλητή και θα εκχωρήσουμε τον τύπο δεδομένων ως αντικείμενο "Range".

Εντάξει, ας δώσουμε το δικό σας όνομα σε μια μεταβλητή και αντιστοιχίστε τον τύπο δεδομένων ως "Range".

Εκτός από τις "Μεταβλητές αντικειμένου" μπορούμε να αρχίσουμε να χρησιμοποιούμε τις μεταβλητές με το όνομά τους, αλλά στην περίπτωση "Μεταβλητές αντικειμένου", πρέπει να ορίσουμε την αναφορά.

Για παράδειγμα, σε αυτήν την περίπτωση, το αντικείμενο μεταβλητής (Rng) είναι εύρος, οπότε πρέπει να ορίσουμε την αναφορά στην οποία αναφέρεται η λέξη "Rng". Για να ορίσουμε την αναφορά πρέπει να χρησιμοποιήσουμε τη λέξη-κλειδί "Ορισμός".

Τώρα η μεταβλητή "Rng" αναφέρεται στο εύρος των κελιών από A2 έως B10, αντί να γράφει "Range (" A2: B10 "))" κάθε φορά που μπορούμε απλά να γράψουμε τη λέξη "Rng" .

Στην επόμενη γραμμή αναφέρετε το μεταβλητό όνομα "Rng" και βάλτε μια κουκκίδα για να δείτε τη μαγεία.

Όπως μπορείτε να δείτε παραπάνω μπορούμε να δούμε όλες τις ιδιότητες και τις μεθόδους αντικειμένου εύρους όπως το προηγούμενο.

Κάντε τη μεταβλητή δυναμική

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

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

Για να βρούμε την τελευταία χρησιμοποιημένη σειρά και στήλη πρέπει να καθορίσουμε δύο ακόμη μεταβλητές.

Κώδικας:

 Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Last Row for Understanding Dim LC As Long' LC = Τελευταία στήλη για κατανόηση End Sub 

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

Κώδικας:

 Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Last Row for Understanding Dim LC As Long' LC = Last Column for Understanding LR = Cells (Rows.Count, 1). End (xlUp) .Row LC = Cells (1, Columns.Count). End (xlToLeft). Sub End End Sub 

Τώρα ανοίξτε τη δήλωση λέξεων-κλειδιών "Ορισμός".

Κώδικας:

 Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Last Row for Understanding Dim LC As Long' LC = Last Column for Understanding LR = Cells (Rows.Count, 1). End (xlUp) .Row LC = Cells (1, Columns.Count). End (xlToLeft). Σύνολο στήλης Rng = End Sub 

Σε αντίθεση με την προηγούμενη μέθοδο, χρησιμοποιούμε τις ιδιότητες VBA CELLS αυτή τη φορά.

Κώδικας:

 Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Last Row for Understanding Dim LC As Long' LC = Last Column for Understanding LR = Cells (Rows.Count, 1). End (xlUp) .Row LC = Cells (1, Columns.Count). End (xlToLeft). Set Column Rng = Cells (1, 1) End Sub 

Έχω αναφέρει τα κελιά (1,1) δηλ. Αυτό αναφέρεται στο πρώτο κελί στο ενεργό φύλλο, αλλά χρειαζόμαστε την αναφορά εύρους δεδομένων, οπότε χρησιμοποιήστε την ιδιότητα "ΑΠΟΣΤΑΣΗ" και αναφέραμε τις μεταβλητές "τελευταίας γραμμής και στήλης"

Κώδικας:

 Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Last Row for Understanding Dim LC As Long' LC = Last Column for Understanding LR = Cells (Rows.Count, 1). End (xlUp) .Row LC = Cells (1, Columns.Count). End (xlToLeft). Set Column Rng = Cells (1, 1). Resize (LR, LC) End Sub 

Τώρα αυτό θα ορίσει την τελευταία αναφορά στη μεταβλητή αντικειμένου εύρους "Rng" Στη συνέχεια, αναφέρετε το όνομα της μεταβλητής και χρησιμοποιήστε τη μέθοδο "Επιλογή".

 Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Last Row for Understanding Dim LC As Long' LC = Last Column for Understanding LR = Cells (Rows.Count, 1). End (xlUp) .Row LC = Cells (1, Columns.Count). End (xlToLeft). Set Column Rng = Cells (1, 1). Resize (LR, LC) Rng. Επιλέξτε End Sub 

Τώρα θα προσθέσω μερικές ακόμη γραμμές στα δεδομένα μου.

Έχω προσθέσει τρεις επιπλέον γραμμές δεδομένων εάν εκτελέσω τον κώδικα τώρα θα πρέπει να επιλέξει το πιο πρόσφατο εύρος δεδομένων.

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

  • Η μεταβλητή εύρους στο excel VBA είναι μια μεταβλητή αντικειμένου.
  • Κάθε φορά που χρησιμοποιούμε τη μεταβλητή αντικειμένου πρέπει να χρησιμοποιούμε τη λέξη-κλειδί «Set» και να ορίζουμε την αναφορά αντικειμένου στη μεταβλητή.
  • Χωρίς να ορίσουμε την αναφορά δεν μπορούμε να χρησιμοποιήσουμε μια μεταβλητή αντικειμένου.