Τύποι μεταβλητών του Excel VBA
Οι μεταβλητές VBA είναι σαν μια διεύθυνση για την αποθήκευση δεδομένων και τα δεδομένα μπορούν να είναι σε πολλές μορφές όπως αριθμητικά ή συμβολοσειρά ή χαρακτήρες κ.λπ. επίσης γνωστοί ως τύποι δεδομένων που χρησιμοποιούνται για την αποθήκευση των δεδομένων σύμφωνα με τον τύπο, για παράδειγμα, ένας τύπος μεταβλητής συμβολοσειράς θα αποθηκεύει την τιμή συμβολοσειράς, ενώ ένας ακέραιος τύπος δεδομένων θα αποθηκεύει μια ακέραια τιμή και ούτω καθεξής.
Προκειμένου να κωδικοποιηθεί αποτελεσματικά, η δήλωση μεταβλητών και η εκχώρηση τύπων δεδομένων σε αυτές τις δηλωμένες μεταβλητές είναι το κλειδί για να προχωρήσουμε πολύ στην κωδικοποίηση VBA. Σε αυτό το άρθρο, θα σας δείξουμε ποιες είναι οι μεταβλητές, ποιος είναι ο τύπος δεδομένων και πώς να αντιστοιχίσετε έναν τύπο δεδομένων σε αυτές τις μεταβλητές.
Όπως λέει και το ίδιο το όνομα, η μεταβλητή ποικίλλει από καιρό σε καιρό και αποθηκεύουμε κάποια αξία σε αυτές τις μεταβλητές. Για να το κατανοήσουμε καλύτερα, ας θυμηθούμε τις τάξεις μας «μαθηματικών», όπου υποθέτουμε τη μεταβλητή «x = κάτι», οπότε όποτε χρησιμοποιούμε τη μεταβλητή «x», θα είναι ίση με την τιμή που έχουμε εκχωρήσει.

Τι είναι ο τύπος δεδομένων;
Ο τύπος δεδομένων είναι ο περιορισμός που θέτουμε σε αναμονή της μεταβλητής. Για παράδειγμα, για τη δηλωμένη μεταβλητή, μπορούμε να περιορίσουμε τη διατήρηση μόνο "Τιμές ημερομηνίας", "Ακέραιες τιμές", "Μακροχρόνιες τιμές", "Τιμή συμβολοσειράς" κ.λπ.
Οι τύποι δεδομένων που μπορεί να διατηρεί μια μεταβλητή ονομάζεται "Τύπος δεδομένων" στο VBA.
Έχει πολλούς τύπους. Στην κωδικοποίηση, είναι σημαντικό να κατανοήσουμε τι μπορεί να κρατήσει κάθε τύπος δεδομένων. Μπορούμε να ταξινομήσουμε τους τύπους δεδομένων με δύο τρόπους, δηλαδή
# 1 - Μη αριθμητικοί τύποι δεδομένων
Αυτοί οι τύποι δεδομένων μπορούν να περιέχουν μόνο μη αριθμητικά δεδομένα. Αυτοί είναι συνηθισμένοι μη αριθμητικοί τύποι δεδομένων, π.χ. String, Boolean, Variant, Object.
- String: Αυτό μπορεί να περιέχει δύο είδη τιμών συμβολοσειρών σε αυτό, δηλαδή, String με σταθερό μήκος και string με μεταβλητό μήκος.
- Boolean: Τα Booleans στο VBA είναι λογικές τιμές, δηλαδή, είτε TRUE είτε FALSE.
- Παραλλαγή: Μπορεί να διατηρήσει αριθμητικά και μη αριθμητικά δεδομένα.
- Αντικείμενο: Οι μεταβλητές αντικειμένων είναι προϊόντα της Microsoft. Για παράδειγμα, στο Excel, τα αντικείμενα είναι "Φύλλο εργασίας, Βιβλίο εργασίας, Εύρος". Τα Microsoft Objects είναι "MS Word, MS PowerPoint και MS Outlook."
# 2 - Αριθμοί αριθμών δεδομένων
Αυτοί οι τύποι δεδομένων μπορούν να περιέχουν μόνο αριθμητικά δεδομένα. Ακολουθούν αριθμοί αριθμητικών δεδομένων, π.χ. Byte, Integer, Long, Single, Double, Date, Currency, Decimal.
- Byte: Αυτή είναι μια μεταβλητή μικρής χωρητικότητας όπου η δηλωμένη μεταβλητή μπορεί να διατηρήσει τιμές από 0 έως 255.
- Ακέραιος: Αυτή είναι η βελτιωμένη έκδοση του τύπου δεδομένων Byte. Αυτό μπορεί να διατηρήσει τιμές από -32768 έως 32768. Εάν έχουν οριστεί δεκαδικές τιμές, τότε θα μετατραπεί στην πλησιέστερη ακέραια τιμή. Για παράδειγμα, το 5,55 θα μετατραπεί σε 6 και το 5,49 θα μετατραπεί σε 5.
- Long: Όπου οι τύποι δεδομένων Integer περιορίζουν την τιμή του στα 32768, το LONG μπορεί να έχει πολύ μεγάλους αριθμούς από -2.147.483.648 έως 2.147.483.648.
- Single: Ένας τύπος δεδομένων μπορεί να διατηρήσει δύο δεκαδικά ψηφία -3.402823E + 38 έως -1.401298E-45 για αρνητικές τιμές και 1.401298E-45 έως 3.402823E + 38 για θετικές τιμές.
- Διπλός: Ο διπλός τύπος δεδομένων μπορεί να χωρέσει περισσότερα από δύο δεκαδικά ψηφία, δηλαδή έως 14 δεκαδικά ψηφία. -1.79769313486232e + 308 έως -4.94065645841247E-324 για αρνητικές τιμές και 4.94065645841247E-324 έως 1.79769313486232e + 308 για θετικές τιμές.
- Ημερομηνία: Αυτός ο τύπος δεδομένων μπορεί να περιέχει μόνο τιμές DATE.
- Νόμισμα: Αυτός ο τύπος δεδομένων μπορεί να διατηρεί τιμές από -922.337.203.685.477.5808 έως 922.337.203.685.477.5807.
- Δεκαδικό: Οι δεκαδικοί τύποι δεδομένων μπορούν να χωρίσουν έως και 28 δεκαδικά ψηφία. Μπορεί να κρατήσει από +/- 79.228.162.514.264.337.593.543.950.335 εάν δεν χρησιμοποιείται δεκαδικό +/- 7.9228162514264337593543950335.
Πώς να ορίσετε μεταβλητή και να ορίσετε τύπο δεδομένων στο VBA;
Το πιο σημαντικό πράγμα που πρέπει να γνωρίζετε είναι να ορίσετε τη μεταβλητή κατά την κωδικοποίηση. Μπορούμε να καθορίσουμε τους τύπους μεταβλητών με δύο διαφορετικούς τρόπους, δηλαδή, έμμεσα και ρητά .
# 1 - Σιωπηρά
Μπορούμε να δηλώσουμε τη μεταβλητή VBA έμμεσα, δηλαδή, χωρίς τη χρήση της λέξης "DIM". Το Dim σημαίνει "Διάσταση". Για παράδειγμα, δείτε την παρακάτω εικόνα.
Κώδικας:
Sub Data_Type () k = 45 End Sub

# 2 - ρητά
Αυτός είναι ένας σωστός τρόπος δήλωσης μιας μεταβλητής. Θα το αποκαλούσα επίσημο και επαγγελματικό τρόπο. Για να δηλώσουμε μια μεταβλητή, πρέπει να χρησιμοποιήσουμε τη λέξη "DIM" και να αντιστοιχίσουμε έναν τύπο δεδομένων στη μεταβλητή.
Κώδικας:
Sub Data_Type () Dim k As Integer k = 45 End Sub

Έχουμε ορίσει τη μεταβλητή "k" όπως μπορείτε να δείτε στην παραπάνω εικόνα και εκχωρήσαμε τον τύπο δεδομένων ως "Integer".
Κανόνες για τον ορισμό της μεταβλητής
- Η μεταβλητή δεν μπορεί να περιέχει χαρακτήρα διαστήματος.
- Η μεταβλητή δεν πρέπει να περιέχει ειδικούς χαρακτήρες εκτός από το "υπογράμμιση" (_)
- Η μεταβλητή δεν πρέπει να ξεκινά με αριθμητικό χαρακτήρα.
- Η μεταβλητή δεν πρέπει να περιέχει απευθείας λέξεις-κλειδιά VBA.
Παραδείγματα
Παράδειγμα # 1
Για να ορίσουμε οποιαδήποτε μεταβλητή, πρέπει πρώτα να χρησιμοποιήσουμε τη λέξη «Dim» και ακολουθούμενη από ένα όνομα μεταβλητής.
Κώδικας:
Sub Data_Type () Dim var End Sub

Στη συνέχεια, μόλις δοθεί το όνομα της μεταβλητής, πρέπει να αντιστοιχίσουμε έναν τύπο δεδομένων. Όπως συζητήσαμε παραπάνω, μπορούμε να αντιστοιχίσουμε οποιονδήποτε τύπο δεδομένων.
Κώδικας:
Sub Data_Type () Dim var As Integer End Sub

Έχω εκχωρήσει τον τύπο δεδομένων ως ακέραιο. Τώρα πρέπει να θυμάστε τους περιορισμούς της μεταβλητής Integer, δηλαδή, μπορεί να διατηρήσει τιμές μεταξύ -32768 και 32768.
Κώδικας:
Sub Data_Type () Dim var As Integer var = 25000 End Sub

Στην παραπάνω εικόνα, έχω εκχωρήσει 25000, το οποίο είναι αρκετά προσιτό, αλλά τη στιγμή που εισαγάγετε την τιμή περισσότερο από το όριο, θα προκαλέσει σφάλμα υπερχείλισης στο VBA.
Κώδικας:
Sub Data_Type () Dim var As Integer var = 35000 End Sub

Τώρα μπορείτε να εκτελέσετε αυτόν τον κωδικό χρησιμοποιώντας το πλήκτρο συντόμευσης F5 ή χειροκίνητα για να δείτε το αποτέλεσμα.

Η υπερχείλιση δεν είναι τίποτα άλλο, αλλά η αντιστοιχισμένη τιμή του τύπου δεδομένων είναι μεγαλύτερη από τη χωρητικότητά της.
Παράδειγμα # 2
Ομοίως, δεν μπορούμε να εκχωρήσουμε διαφορετικές τιμές επίσης. Για παράδειγμα, δεν μπορούμε να αντιστοιχίσουμε την τιμή "String" στην ακέραια μεταβλητή τύπου δεδομένων. Εάν εκχωρηθεί, θα λάβουμε το "Type Mismatch Error".
Κώδικας:
Sub Data_Type1 () Dim var As Integer var = "Hii" End Sub

Τώρα εκτελέστε αυτόν τον κωδικό μέσω του πλήκτρου συντόμευσης F5 ή χειροκίνητα, για να δείτε το αποτέλεσμα.

Πράγματα που πρέπει να θυμάστε
- Χρησιμοποιείτε πάντα τη λέξη DIM για να ορίσετε τη μεταβλητή.
- Πριν από την εκχώρηση τύπου δεδομένων, βεβαιωθείτε τι είδους δεδομένα πρόκειται να αποθηκεύσετε σε αυτόν.
- Η εκχώρηση περισσότερων από την τιμή χωρητικότητας στον τύπο δεδομένων προκαλεί σφάλμα υπερχείλισης και η εκχώρηση διαφορετικής τιμής στον τύπο δεδομένων προκαλεί "Σφάλμα αναντιστοιχίας τύπου".