Τρέχουσα περιοχή VBA

Αυτό το σεμινάριο θα εξηγήσει τον τρόπο χρήσης της τρέχουσας περιοχής στο 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). Διεύθυνση)Τέλος υπο

Όταν εκτελέσουμε τον παραπάνω κώδικα, θα εμφανιστεί το ακόλουθο πλαίσιο μηνυμάτων

wave wave wave wave wave