Ακέραιος (Int) Μεταβλητός τύπος
Το VBA Int ο τύπος δεδομένων χρησιμοποιείται για την αποθήκευση ακέραιων αριθμών (χωρίς δεκαδικές τιμές). Ωστόσο, όπως θα δούμε παρακάτω, οι ακέραιες τιμές πρέπει να εμπίπτουν στην περιοχή 2732768 έως 32768.
Για να δηλώσετε μια μεταβλητή Int, χρησιμοποιείτε τη δήλωση Dim (συντομογραφία για Dimension):
1 | Dim intA ως ακέραιος |
Στη συνέχεια, για να εκχωρήσετε μια τιμή σε μια μεταβλητή, χρησιμοποιήστε απλά το πρόσημο ίσου:
1 | intA = 30000 |
Βάζοντας αυτό σε μια διαδικασία μοιάζει με αυτό:
12345678 | Sub IntExample ()"δηλώνω τον ακέραιοDim intA ως ακέραιος"συμπληρώστε τον ακέραιοintA = 30000"εμφάνιση του πλαισίου μηνυμάτωνMsgBox intAΤέλος υπο |
Εάν εκτελέσετε τον παραπάνω κώδικα, θα εμφανιστεί το ακόλουθο πλαίσιο μηνυμάτων.
Τύπος μακράς μεταβλητής
Όπως προαναφέρθηκε, οι μεταβλητές Int μπορούν να αποθηκεύσουν τιμές μόνο μεταξύ 2732768 έως 32768. Εάν επιχειρήσετε να εκχωρήσετε μια τιμή εκτός αυτού του εύρους σε μια μεταβλητή Int, θα λάβετε ένα σφάλμα:
Όταν κάνετε κλικ στο de-bug, ο κώδικας θα σπάσει στο «Συμπληρώστε την ακέραια γραμμή ως ακέραιος αριθμός δεν μπορεί να αποθηκεύσει έναν αριθμό έως 50000.
Αντ 'αυτού, μπορείτε να δηλώσετε μια μεταβλητή με το Μακρύς Τύπος δεδομένων:
1 | Dim longA as Long |
Οι Long Variables μπορούν να αποθηκεύσουν πολύ μεγάλους τύπους δεδομένων (-2,147,483,648 έως 2,147,483,648).
<>
Γιατί θα χρησιμοποιούσατε μεταβλητές Int αντί μεταβλητές Long;
Οι μεγάλες μεταβλητές χρησιμοποιούν περισσότερη μνήμη. Πριν από χρόνια, η μνήμη ήταν μια μεγάλη ανησυχία κατά τη συγγραφή κώδικα, ωστόσο τώρα η τεχνολογία υπολογιστών έχει βελτιωθεί πολύ και είναι αμφίβολο ότι θα αντιμετωπίσετε προβλήματα μνήμης που προκαλούνται από μεγάλες μεταβλητές κατά τη συγγραφή κώδικα VBA.
Σας συνιστούμε να χρησιμοποιείτε πάντα μεγάλες μεταβλητές αντί για μεταβλητές Int. Θα συνεχίσουμε αυτό το σεμινάριο συζητώντας μεταβλητές Int, αλλά λάβετε υπόψη ότι μπορείτε να χρησιμοποιήσετε τον τύπο Long μεταβλητής.
Δεκαδικές τιμές & Τύποι δεδομένων Int
Οι μεταβλητές Int δεν μπορούν να αποθηκεύσουν δεκαδικές τιμές. Εάν περάσετε έναν δεκαδικό αριθμό έναν ακέραιο, ο δεκαδικός αριθμός θα στρογγυλοποιηθεί για να αφαιρεθεί το δεκαδικό.
Επομένως, εάν εκτελούσατε την παρακάτω διαδικασία:
12345678 | Υπο IntExampleB ()"δηλώνω τον ακέραιοDim intA ως ακέραιος"συμπληρώστε τον ακέραιοintA = 3524,12"εμφάνιση του πλαισίου μηνυμάτωνMsgBox intAΤέλος υπο |
Θα έχετε το ακόλουθο αποτέλεσμα (στρογγυλοποίηση προς τα κάτω):
Ωστόσο, αυτός ο κωδικός παρακάτω:
12345678 | Υπο IntExampleB ()"δηλώνω τον ακέραιοDim intA ως ακέραιος"συμπληρώστε τον ακέραιοintA = 3524,52"εμφάνιση του πλαισίου μηνυμάτωνMsgBox intAΤέλος υπο |
Θα επιστρέψει το ακόλουθο πλαίσιο μηνυμάτων (στρογγυλοποίηση):
Δεκαδικός / Διπλός τύπος δεδομένων
Εάν θέλετε να αποθηκεύσετε ένα δεκαδικό ψηφίο, θα πρέπει να δηλώσετε μια μεταβλητή που επιτρέπει δεκαδικά ψηφία. Υπάρχουν 3 τύποι δεδομένων που μπορείτε να χρησιμοποιήσετε - μεμονωμένα, διπλά ή νομίσματα.
1 | Dim sngΤιμή ως Single |
1 | Dim dblΤιμή ως διπλό |
1 | Dim curPrice as Currency |
Ο τύπος μεμονωμένων δεδομένων θα στρογγυλοποιήσει το δεκαδικό σημείο ελαφρώς διαφορετικά στον τύπο δεδομένων διπλού και νομίσματος, επομένως είναι προτιμότερο να χρησιμοποιείτε διπλό προς μονό για ακρίβεια. Ένα διπλό μπορεί να έχει έως και 12 δεκαδικά ψηφία, ενώ το νόμισμα και το μονόκλινο μπορούν να έχουν έως και 4 δεκαδικά ψηφία.
Για περισσότερες πληροφορίες σχετικά με αυτούς τους τύπους δεδομένων, μπορείτε να ρίξετε μια ματιά εδώ.
Δήλωση Int Variable σε Module ή Global Level
Στα προηγούμενα παραδείγματα, δηλώσαμε τη μεταβλητή Int μέσα σε μια διαδικασία. Οι μεταβλητές που δηλώνονται με μια διαδικασία μπορούν να χρησιμοποιηθούν μόνο εντός αυτής της διαδικασίας.
Αντ 'αυτού, μπορείτε να δηλώσετε μεταβλητές Int σε ενότητα ή παγκόσμιο επίπεδο.
Επίπεδο ενότητας
Επίπεδο ενότητας οι μεταβλητές δηλώνονται στην κορυφή των ενοτήτων κώδικα με το Αμυδρός δήλωση.
Αυτές οι μεταβλητές μπορούν να χρησιμοποιηθούν με οποιαδήποτε διαδικασία σε αυτήν την ενότητα κώδικα.
Παγκόσμιο Επίπεδο
Παγκόσμιο επίπεδο οι μεταβλητές δηλώνονται επίσης στην κορυφή των ενοτήτων κώδικα. Ωστόσο, αντί να χρησιμοποιήσετε το Αμυδρός δήλωση, χρησιμοποιήστε το Δημόσιο δήλωση για να υποδείξετε ότι η ακέραιη μεταβλητή είναι διαθέσιμη για χρήση σε όλο το έργο VBA.
1 | Public IntA as Integer |
Εάν δηλώσετε τον ακέραιο σε επίπεδο μονάδας και στη συνέχεια προσπαθήσετε να τον χρησιμοποιήσετε σε διαφορετική ενότητα, θα εμφανιστεί σφάλμα.
Ωστόσο, εάν είχατε χρησιμοποιήσει τη λέξη -κλειδί Δημόσια για να δηλώσετε τον ακέραιο, το σφάλμα δεν θα εμφανιζόταν και η διαδικασία θα λειτουργούσε τέλεια.
Μετατροπή συμβολοσειράς σε Int
Μπορεί να υπάρχει ένα παράδειγμα ή περιπτώσεις όπου θα χρειαστεί να μετατρέψετε έναν αριθμό που είναι αποθηκευμένος ως συμβολοσειρά σε ακέραιη τιμή.
Θα παρατηρήσετε στο άμεσο παράθυρο ότι η ακέραιη τιμή πηγαίνει δεξιά υποδεικνύοντας έναν αριθμό, ενώ η τιμή συμβολοσειράς πηγαίνει προς τα αριστερά - υποδεικνύοντας κείμενο.
Μετατροπή Int σε String
Αντιστρόφως, μπορείτε να μετατρέψετε μια ακέραιη τιμή σε συμβολοσειρά.
Για περισσότερες πληροφορίες σχετικά με αυτούς τους τύπους δεδομένων, μπορείτε να ρίξετε μια ματιά εδώ.
Ακέραιος τύπος αποθηκεύεται ως συμβολοσειρά
<>