Μαθήματα Πληροφορικής & Προγραμματισμού

VBA – range object excel – δημιουργία αυτόματης επιλογής

VBA – range object

Το αντικείμενο Range, το οποίο είναι η αναπαράσταση ενός κελιού (ή κελλιών) στο φύλλο εργασίας και είναι το πιο σημαντικό αντικείμενο της Excel VBA.

Αυτό το άρθρο παρέχει μια επισκόπηση των ιδιοτήτων και των μεθόδων του αντικειμένου Range και προϋποθέτει ότι ο αναγνώστης διαθέτει κάποιες βασικές γνώσεις προγραμματισμού καθώς και χρήσης του Microsoft Excel.

Ιδιότητες είναι κάτι το οποίο έχει ένα αντικείμενο (που περιγράφουν το αντικείμενο), ενώ οι μέθοδοι είναι η ενέργειες του, δηλαδή “κώδικας που κάνει κάτι” (που εκτελούν μια ενέργεια με ένα αντικείμενο).

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

Range("B3").Value = 2

Το αποτέλεσμα όταν κάνετε κλικ στο κουμπί εντολής στο φύλλο, θα είναι:

vba excel - range

Στην συνέχεια αλλάξτε τον προηγούμενο κώδικα με:

Rem η περιοχή θα πάρει την τιμή 5 σε όλα τα κελιά
Range("A1:A4").Value = 5

Το αποτέλεσμα όταν κάνετε κλικ στο κουμπί εντολής στο φύλλο, θα είναι:

vba excel - range

Επαναλάβετε με τον εξής κώδικα αυτή την φορά:

Rem οι περιοχές θα πάρουν την τιμή 10 σε όλα τα κελιά
Range("A1:A2,B3:C4").Value = 10

Το αποτέλεσμα όταν κάνετε κλικ στο κουμπί εντολής στο φύλλο, θα είναι:

vba excel - range

Σημείωση: για να αναφερθείτε σε ένα named range στον κώδικα σας, χρησιμοποιήστε μια γραμμή εντολής, όπως εδώ:

Rem η περιοχή που έχει ονομαστεί Prices θα πάρει την τιμή 5 σε όλα τα κελιά
Range("Prices").Value = 5

Το αποτέλεσμα όταν κάνετε κλικ στο κουμπί εντολής στο φύλλο, θα είναι:

vba excel - range

Κελιά – Cells

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

Επαναλάβετε με τον εξής κώδικα αυτή την φορά:

Rem το κελί θα πάρει την τιμή 2
Cells(3, 2).Value = 2

Το αποτέλεσμα όταν κάνετε κλικ στο κουμπί εντολής στο φύλλο, θα είναι:

vba excel - range

Επεξήγηση: Η Excel VBA εισάγει την τιμή 2 στο κελί που βρίσκεται στην σειρά 3 και στην στήλη 2.

Στην συνέχεια αλλάξτε τον προηγούμενο κώδικα με:

Rem η περιοχή που ορίζεται από κελιά, θα πάρει την τιμή 5 σε αυτά
Range(Cells(1, 1), Cells(4, 1)).Value = 5

Το αποτέλεσμα όταν κάνετε κλικ στο κουμπί εντολής στο φύλλο, θα είναι:

vba excel - range

Ορίζοντας ένα αντικείμενο Range

Μπορείτε να δηλώσετε ένα αντικείμενο Range, χρησιμοποιώντας τις δεσμευμένες λέξεις-κλειδιά Dim και Set. Δείτε τον παρακάτω σχετικό κώδικα:

Dim example As Range
Set example = Range("A1:C4")

example.Value = 8

Επεξήγηση: η εντολή Dim example As Range, δημιουργεί αντικείμενο Range ως μεταβλητή με το όνομα example. Στην συνέχεια η εντολή Set example = Range(“A1:C4”), ορίζει την περιοχή της μεταβλητής example στα κελιά A1 έως C4. Το αποτέλεσμα όταν κάνετε κλικ στο κουμπί εντολής στο φύλλο, θα είναι:

vba excel range

VBA – range object – Select

Μια σημαντική μέθοδος του αντικειμένου Range είναι η Select μέθοδος. Η Select μέθοδος απλά επιλέγει μια περιοχή. Αλλάξτε τον προηγούμενο κώδικα με τον παρακάτω αυτή τη φορά:

Dim example As Range
Set example = Range("A1:C4")

example.Select

Το αποτέλεσμα όταν κάνετε κλικ στο κουμπί εντολής στο φύλλο, θα είναι:

vba excel - range

VBA – range object – Rows

Η ιδιότητα Rows (σειρές) δίνει πρόσβαση σε μια συγκεκριμένη σειρά από μια περιοχή. Εκτελέστε με τον ίδιο τρόπο τον παρακάτω κώδικα:

Dim example As Range
Set example = Range("A1:C4")

example.Rows(3).Select

Το αποτέλεσμα όταν κάνετε κλικ στο κουμπί εντολής στο φύλλο, θα είναι:

vba excel - range

VBA – range object – Columns

Η ιδιότητα Columns (στήλες) δίνει πρόσβαση σε μια συγκεκριμένη στήλη από μια περιοχή. Εκτελέστε με τον ίδιο τρόπο τον παρακάτω κώδικα:

Dim example As Range
Set example = Range("A1:C4")

example.Columns(2).Select

Το αποτέλεσμα όταν κάνετε κλικ στο κουμπί εντολής στο φύλλο, θα είναι:

vba excel - range

VBA – range object – Copy / Paste

Η μέθοδοι Copy (αντιγραφή) και Paste (επικόλληση) χρησιμοποιούνται για να αντιγράψετε μια περιοχή και να την επικολλήσετε κάπου αλλού στο φύλλο εργασίας. Εκτελέστε με τον ίδιο τρόπο τον παρακάτω κώδικα:

Rem επιλογή αντιγραφής και στην συνέχεια ενέργεια επικόλλησης
Range("A1:A2").Select
Selection.Copy

Range("C3").Select
ActiveSheet.Paste

Το αποτέλεσμα όταν κάνετε κλικ στο κουμπί εντολής στο φύλλο, θα είναι:

vba excel - rangeΣημείωση: Παρόλο που αυτό επιτρέπεται στην Excel VBA, είναι πολύ καλύτερο να χρησιμοποιήσετε τη παρακάτω γραμμή κώδικα, η οποία κάνει ακριβώς το ίδιο:

Rem η εντολή αυτή είναι προτιμότερη
Range("C3:C4").Value = Range("A1:A2").Value

VBA – range object – Clear

Για να διαγράψετε το περιεχόμενο μιας περιοχής στο Excel, μπορείτε να χρησιμοποιήσετε τη μέθοδο ClearContents. Δείτε τον παρακάτω κώδικα:

Rem καθαρισμός της επιλογής
Range("A1").ClearContents

ή εναλλακτικά:

Rem καθαρισμός της επιλογής
Range("A1").Value = ""

Σημείωση: χρησιμοποιήστε την μέθοδο Clear, για να καταργήσετε το περιεχόμενο και τη μορφοποίηση μιας περιοχής. Χρησιμοποιήστε τη μέθοδο ClearFormats να καθαρίσει μόνο η μορφοποίηση της περιοχής.

VBA – range object – Count

Με την ιδιότητα Count, μπορείτε να μετρήσετε τον αριθμό των κελιών, γραμμών και στηλών μιας περιοχής. Δείτε ένα παράδειγμα:

Dim example As Range
Set example = Range("A1:C4")

MsgBox example.Count

Το αποτέλεσμα όταν κάνετε κλικ στο κουμπί εντολής στο φύλλο, θα είναι:

vba excel - range
ενώ ο παρακάτω κώδικας θα μετρήσει μόνο τις γραμμές της ίδιας περιοχής:

Dim example As Range
Set example = Range("A1:C4")

MsgBox example.Rows.Count

Αφήστε ένα Σχόλιο

Η ηλ. διεύθυνση σας δεν δημοσιεύεται. Τα υποχρεωτικά πεδία σημειώνονται με *

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