Αυτό το σεμινάριο θα εξηγήσει τον τρόπο χρήσης της τρέχουσας περιοχής στο VBA.
ο CurrentRegion η ιδιότητα στο VBA είναι ένας τρόπος για να επιλέξετε όλα τα κελιά που περιέχονται σε ένα εύρος με το οποίο ίσως θέλετε να εργαστείτε. Εφόσον τα κελιά εντός της περιοχής είναι όλα διαδοχικά ή «αγγίζουν» το ένα το άλλο, το CurrentRegion θα επιλέξει κάθε κελί στην περιοχή.
Σύνταξη CurrentRegion
Η σύνταξη είναι πολύ απλή:
1 | Εύρος ("E11"). CurrentRegion.Select |
όπου θα καθορίσετε το κελί του οποίου την τρέχουσα περιοχή θέλετε να επιλέξετε και, στη συνέχεια, χρησιμοποιήστε το CurrentRegion. Επιλέξτε ιδιότητα για να επιλέξετε το εύρος κελιών.
Απόκτηση της τρέχουσας περιοχής
Εξετάστε το ακόλουθο φύλλο εργασίας.
η ακόλουθη υπο -διαδικασία θα επιλέξει όλα τα κελιά της βάσης δεδομένων
1234567 | Υπο FindCurrentRegion ()Dim rng As Range«ορίστε το εύρος στο Cell E11Ρύθμιση rng = Εύρος ("E11")"επιλέξτε την τρέχουσα περιοχήrng.CurrentRegion.SelectΤέλος υπο |
Εάν εκτελέσουμε τη ρουτίνα, όλα τα κελιά στο CurrentRegion του κελιού Ε11 θα επιλεγεί.
Εάν αφαιρέσουμε το περιεχόμενο των παρακείμενων κελιών και επαναλάβουμε τη ρουτίνα, τα ακόλουθα θα επιλεγούν ως η τρέχουσα περιοχή.
Ωστόσο, εάν αφαιρέσουμε ακόμη περισσότερα δεδομένα, θα μπορούσαμε να καταλήξουμε στο παρακάτω παράδειγμα για την τρέχουσα περιοχή του κυττάρου E11.
Βάζοντας πληροφορίες στο D13, καταλήγουμε στα εξής:
ο CurrentRegion επομένως επιστρέφει ένα άλλο εύρος αντικείμενο που ορίζεται από τον μικρότερο συνδυασμό κατειλημμένων στηλών και σειρών που περιβάλλουν το εύρος που έχετε παράσχει.
Καταμέτρηση των γραμμών και των στηλών στην τρέχουσα περιοχή
Μπορούμε να χρησιμοποιήσουμε CurrentRegion για να μετρήσετε τις γραμμές και τις στήλες.
12345678910111213 | Υπο FindCurrentRegion ()Dim rng As RangeDim iRw ως ακέραιοςDim iCol ως ακέραιος«ορίστε το εύροςΡύθμιση rng = Εύρος ("E11")«μετρήστε τις σειρέςiRw = rng.CurrentRegion.Rows.Count«μετρήστε τις στήλεςiCol = rng.CurrentRegion.Columns.Count«εμφανίστε το αποτέλεσμα σε ένα πλαίσιο μηνυμάτωνMsgBox ("Έχουμε" & iRw & "σειρές και" & iCol & "στήλες στην τρέχουσα περιοχή μας")Τέλος υπο |
Εάν εκτελέσουμε τη διαδικασία, θα εμφανιστεί το ακόλουθο πλαίσιο μηνυμάτων.
Εκκαθάριση της τρέχουσας περιοχής
Μπορούμε επίσης να χρησιμοποιήσουμε την τρέχουσα ιδιότητα περιοχής για να καθαρίσουμε το εύρος των κελιών.
123456 | Sub ClearCurrentRegion ()Dim rng As Range«ορίστε το εύροςΡύθμιση rng = Εύρος ("E11")rng.CurrentRegion.ClearΤέλος υπο |
Ανάθεση της τρέχουσας περιοχής σε μια μεταβλητή
Μπορούμε επίσης να εκχωρήσουμε ολόκληρη την τρέχουσα περιοχή σε μια μεταβλητή εύρους και στη συνέχεια να χρησιμοποιήσουμε αυτήν τη μεταβλητή εύρους για να χειριστούμε τα κελιά - είτε πρόκειται για τη μορφοποίηση των κελιών, είτε για την ταξινόμηση των κελιών κλπ…
12345678910 | Sub AssignCurrentRegionToVariable ()Dim rng As Range«ορίστε το εύρος να είναι η τρέχουσα περιοχή του E11Ρύθμιση rng = Εύρος ("E11"). CurrentRegion«χρωματίστε το φόντο και το κείμενοrng.Interior.Pattern = xlSolidrng. Εσωτερικό. Χρώμα = 65535rng.Font.Bold = Truerng.Font.Color = -16776961Τέλος υπο |
Εάν εκτελέσουμε την παραπάνω διαδικασία, θα καταλήξουμε σε ένα φύλλο εργασίας όπως φαίνεται παρακάτω!
Λήψη των κελιών έναρξης και τέλους στην τρέχουσα περιοχή
Με λίγο πιο περίπλοκο κώδικα, μπορούμε να πάρουμε το πρώτο κελί και το τελευταίο κελί σε μια τρέχουσα περιοχή.
123456789101112131415161718 | Sub GetStartAndEndCells ()Dim rng As RangeDim iRw ως ακέραιοςDim iCol ως ακέραιοςDim iColStart, iColEnd, iRwStart, iRwEnd As String«ορίστε τη μεταβλητή εύρους ως την τρέχουσα περιοχή του E11Ρύθμιση rng = Εύρος ("E11"). CurrentRegion«ορίστε τη στήλη έναρξης για το εύροςiColStart = rng. Στήλη"Λάβετε τη στήλη τέλους για το εύροςiColEnd = iColStart + (rng.Columns.Count - 1)«πάρτε τη σειρά εκκίνησης για το εύροςiRwStart = rng.Row«πάρτε την τελική σειρά για το εύροςiRwEnd = iRwStart + (rng.Rows.Count - 1)«Εμφάνιση της διεύθυνσης των αρχικών και τελικών σειρών και στηλών σε ένα πλαίσιο μηνυμάτωνMsgBox ("The Range start at" & Cells (iRwStart, iColStart). Διεύθυνση & "και τελειώνει στο" & Cells (iRwEnd, iColEnd). Διεύθυνση)Τέλος υπο |
Όταν εκτελέσουμε τον παραπάνω κώδικα, θα εμφανιστεί το ακόλουθο πλαίσιο μηνυμάτων