Αυτό το σεμινάριο θα σας διδάξει πώς να αλληλεπιδράτε με τις τιμές κυψέλης χρησιμοποιώντας το VBA.
Ορισμός τιμής κυψέλης
Για να ορίσετε μια τιμή κελιού, χρησιμοποιήστε την ιδιότητα Τιμή του αντικειμένου Εύρος ή Κελιά.
Range.Value & Cells.Value
Υπάρχουν δύο τρόποι αναφοράς κυττάρων (ων) στο VBA:
- Εύρος αντικειμένου - Εύρος ("A2"). Τιμή
- Αντικείμενο κελιών - Κελιά (2,1). Αξία
Το αντικείμενο εύρους σάς επιτρέπει να αναφέρετε ένα κελί χρησιμοποιώντας την τυπική σημειογραφία "A1".
Αυτό θα ορίσει την τιμή του εύρους A2 = 1:
1 | Εύρος ("A2"). Τιμή = 1 |
Το αντικείμενο Cells σάς επιτρέπει να αναφέρετε ένα κελί με τον αριθμό γραμμής και τον αριθμό στήλης.
Αυτό θα ορίσει την τιμή του εύρους Α2 = 1:
1 | Κελιά (2,1). Αξία = 1 |
Παρατηρήστε ότι εισάγετε πρώτα τον αριθμό σειράς:
1 | Κελιά (Row_num, Col_num) |
Ορίστε τιμές πολλαπλών κελιών ταυτόχρονα
Αντί να αναφέρετε ένα μεμονωμένο κελί, μπορείτε να αναφέρετε μια περιοχή κελιών και να αλλάξετε όλες τις τιμές κελιού ταυτόχρονα:
1 | Εύρος ("A2: A5"). Τιμή = 1 |
Ορισμός τιμής κελιού - Κείμενο
Στα παραπάνω παραδείγματα, ορίζουμε την τιμή κελιού ίση με έναν αριθμό (1). Αντ 'αυτού, μπορείτε να ορίσετε την τιμή κελιού ίση με μια συμβολοσειρά κειμένου. Στο VBA, όλο το κείμενο πρέπει να περιβάλλεται από εισαγωγικά:
1 | Εύρος ("A2"). Τιμή = "Κείμενο" |
Εάν δεν περιβάλλετε το κείμενο με εισαγωγικά, η VBA θα νομίζει ότι αναφέρετε μια μεταβλητή…
Ορισμός τιμής κελιού - μεταβλητή
Μπορείτε επίσης να ορίσετε μια τιμή κελιού ίση με μια μεταβλητή
1234 | Dim strText ως συμβολοσειράstrText = "Συμβολοσειρά κειμένου"Εύρος ("A2"). Τιμή = strText |
Λάβετε αξία κυψέλης
Μπορείτε να λάβετε τιμές κελιού χρησιμοποιώντας την ίδια ιδιότητα Τιμή που χρησιμοποιήσαμε παραπάνω.
Λάβετε τιμή ActiveCell
Για να λάβετε την τιμή ActiveCell και να την εμφανίσετε σε ένα πλαίσιο μηνυμάτων:
1 | MsgBox ActiveCell.Value |
Εκχώρηση τιμής κελιού σε μεταβλητή
Για να λάβετε μια τιμή κελιού και να την εκχωρήσετε σε μια μεταβλητή:
123 | Dim var ως Variantvar = Range ("A1"). Τιμή |
Εδώ χρησιμοποιήσαμε μια μεταβλητή τύπου Παραλλαγή. Οι μεταβλητές μεταβλητών μπορούν να δεχτούν κάθε είδους τιμές. Αντ 'αυτού, μπορείτε να χρησιμοποιήσετε έναν τύπο μεταβλητής συμβολοσειράς:
123 | Dim var ως Stringvar = Range ("A1"). Τιμή |
Ένας τύπος μεταβλητής συμβολοσειράς θα δέχεται αριθμητικές τιμές, αλλά θα αποθηκεύει τους αριθμούς ως κείμενο.
Εάν γνωρίζετε ότι η τιμή του κελιού σας θα είναι αριθμητική, μπορείτε να χρησιμοποιήσετε έναν τύπο διπλής μεταβλητής (οι διπλές μεταβλητές μπορούν να αποθηκεύσουν δεκαδικές τιμές):
123 | Dim var ως Doublevar = Range ("A1"). Τιμή |
Ωστόσο, εάν επιχειρήσετε να αποθηκεύσετε μια τιμή κελιού που περιέχει κείμενο σε μια διπλή μεταβλητή, θα λάβετε ένα σφάλμα αναντιστοιχίας τύπου:
Άλλα παραδείγματα τιμής κυψέλης
Αντιγραφή τιμής κελιού
Είναι εύκολο να ορίσετε μια τιμή κελιού ίση με μια άλλη τιμή κελιού (ή "Αντιγραφή" μιας τιμής κελιού):
1 | Εύρος ("A1"). Τιμή = Εύρος ("B1"). Τιμή |
Μπορείτε ακόμη να το κάνετε αυτό με εύρη κελιών (τα εύρη πρέπει να έχουν το ίδιο μέγεθος):
1 | Εύρος ("A1: A5"). Τιμή = Εύρος ("B1: B5"). Τιμή |
Συγκρίνετε τιμές κυψέλης
Μπορείτε να συγκρίνετε τιμές κελιών χρησιμοποιώντας τους τυπικούς τελεστές σύγκρισης.
Ελέγξτε εάν οι τιμές των κελιών είναι ίσες:
1 | MsgBox Range ("A1"). Value = Range ("B1"). Value |
Θα επιστρέψει TRUE εάν οι τιμές των κελιών είναι ίσες. Κατά τα άλλα ΛΑΘΟΣ.
Μπορείτε επίσης να δημιουργήσετε μια δήλωση If για να συγκρίνετε τιμές κελιών:
12345678910111213 | If Range ("A1"). Value> Range ("B1"). Value Στη συνέχειαΕύρος ("C1"). Τιμή = "Μεγαλύτερη από"Εύρος Elseif ("A1"). Τιμή = Εύρος ("B1"). Τιμή Στη συνέχειαΕύρος ("C1"). Τιμή = "alση"ΑλλούΕύρος ("C1"). Τιμή = "Λιγότερο από"Τέλος εαν |
Μπορείτε να συγκρίνετε κείμενο με τον ίδιο τρόπο (Θυμηθείτε ότι το VBA είναι Case Sensitive)