VBA Long Data Type (Dim Variable)

Τύπος μακράς μεταβλητής

Το VBA Μακρύς ο τύπος δεδομένων χρησιμοποιείται για την αποθήκευση πολύ μεγάλων τιμών δεδομένων (-2,147,483,648 έως 2,147,483,648). Μπορεί να αποθηκεύσει μόνο ακέραιους αριθμούς (χωρίς δεκαδικά ψηφία).

Για να δηλώσετε μια μεγάλη μεταβλητή, χρησιμοποιείτε τη δήλωση Dim (συντομογραφία για Dimension):

1 Dim lngA τόσο μακρύ

Στη συνέχεια, για να εκχωρήσετε μια τιμή σε μια μεταβλητή, χρησιμοποιήστε απλά το πρόσημο ίσου:

1 lngA = 30000

Βάζοντας αυτό σε μια διαδικασία μοιάζει με αυτό:

12345678 Sub lngΠαράδειγμα ()«δηλώστε τη μεγάλη μεταβλητήDim lngA τόσο μακρύ"συμπληρώστε τη μεγάλη μεταβλητήlngA = 30000"εμφάνιση του πλαισίου μηνυμάτωνMsgBox lngAΤέλος υπο

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

Τύπος δεδομένων LongLong

Ο τύπος δεδομένων LongLong είναι διαθέσιμος μόνο στην έκδοση 64 bit του Microsoft Office. Εάν εκτελείτε μια έκδοση 32 bit του Office σε ένα μηχάνημα 64 bit, αυτός ο τύπος δεδομένων δεν θα είναι διαθέσιμος. Υποστηρίζει αριθμούς στην περιοχή -9,223,372,036,854,775,808 έως 9,223,372,036,854,775,807.

1 Dim lngA ως LongLong

Τύπος δεδομένων LongPtr

Το LongPtr εισήχθη στο VBA προκειμένου να υποστηρίξει την έκδοση 64 bit του Microsoft Office. Σε σύστημα 32 bit, αντιμετωπίζεται ως Long και σε συστήματα 64 bit αντιμετωπίζεται ως LongLong.

1 Dim lngA ως LongPtr

Σημείωση: Το LongPtr δεν είναι διαθέσιμο στο Excel 2007 ή παλαιότερο.

Δεκαδικές τιμές & Τύποι μεγάλων δεδομένων

Οι μεγάλες μεταβλητές δεν μπορούν να αποθηκεύσουν δεκαδικές τιμές. Εάν περάσετε έναν δεκαδικό αριθμό για μεγάλο χρονικό διάστημα, ο δεκαδικός αριθμός θα στρογγυλοποιηθεί για να αφαιρεθεί το δεκαδικό.

Επομένως, εάν εκτελούσατε την παρακάτω διαδικασία:

12345678 Sub LngExampleB ()«δηλώστε τη μεγάλη μεταβλητήDim lngA τόσο μακρύ"συμπληρώστε τη μεγάλη μεταβλητήlngA = 3524,12"εμφάνιση του πλαισίου μηνυμάτωνMsgBox lngAΤέλος υπο

Η δεκαδική τιμή θα στρογγυλοποιηθεί προς τα κάτω, επιστρέφοντας το ακόλουθο μήνυμα:

Ωστόσο, αυτός ο κωδικός παρακάτω:

12345678 Sub LngExampleB ()«δηλώστε τη μεγάλη μεταβλητήDim lngA τόσο μακρύ"συμπληρώστε τη μεγάλη μεταβλητήlngA = 3524,12"εμφάνιση του πλαισίου μηνυμάτωνMsgBox lngAΤέλος υπο

Θα επιστρέψει το ακόλουθο πλαίσιο μηνυμάτων (στρογγυλοποίηση):

Δεκαδικός / Διπλός τύπος δεδομένων

Εάν θέλετε να αποθηκεύσετε ένα δεκαδικό ψηφίο, θα πρέπει να δηλώσετε μια μεταβλητή που επιτρέπει δεκαδικά ψηφία. Υπάρχουν 3 τύποι δεδομένων που μπορείτε να χρησιμοποιήσετε - μεμονωμένα, διπλά ή νομίσματα.

1 Dim sngΤιμή ως Single
1 Dim dblΤιμή ως διπλό
1 Dim curPrice as Currency

Ο τύπος μεμονωμένων δεδομένων θα στρογγυλοποιήσει το δεκαδικό σημείο ελαφρώς διαφορετικά στον τύπο δεδομένων διπλού και νομίσματος, επομένως είναι προτιμότερο να χρησιμοποιείτε διπλό προς μονό για ακρίβεια. Ένα διπλό μπορεί να έχει έως και 12 δεκαδικά ψηφία, ενώ το νόμισμα και το ενιαίο μπορεί να έχουν και τα 4 δεκαδικά ψηφία.

Δηλώστε μεγάλη μεταβλητή σε ενότητα ή παγκόσμιο επίπεδο

Στα προηγούμενα παραδείγματα, δηλώσαμε τη μεταβλητή Long μέσα σε μια διαδικασία. Οι μεταβλητές που δηλώνονται με μια διαδικασία μπορούν να χρησιμοποιηθούν μόνο εντός αυτής της διαδικασίας.

Αντ 'αυτού, μπορείτε να δηλώσετε μεγάλες μεταβλητές σε ενότητα ή παγκόσμιο επίπεδο.

Επίπεδο ενότητας

Επίπεδο ενότητας οι μεταβλητές δηλώνονται στην κορυφή των ενοτήτων κώδικα με το Αμυδρός δήλωση.

Αυτές οι μεταβλητές μπορούν να χρησιμοποιηθούν με οποιαδήποτε διαδικασία σε αυτήν την ενότητα κώδικα.

Παγκόσμιο Επίπεδο

Παγκόσμιο επίπεδο οι μεταβλητές δηλώνονται επίσης στην κορυφή των ενοτήτων κώδικα. Ωστόσο, αντί να χρησιμοποιήσετε το Αμυδρός δήλωση, χρησιμοποιήστε το Δημόσιο δήλωση για να υποδείξετε ότι η μεγάλη μεταβλητή είναι διαθέσιμη για χρήση σε όλο το έργο VBA.

1 Δημόσια lngA τόσο μακρά

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

Ωστόσο, εάν είχατε χρησιμοποιήσει τη δημόσια λέξη -κλειδί για να δηλώσετε τη μεγάλη μεταβλητή, το σφάλμα δεν θα εμφανιστεί και η διαδικασία θα εκτελεστεί τέλεια.

Μορφή Long Stored as String

Ενδέχεται να υπάρχει κάποια στιγμή κατά την οποία θέλετε να μορφοποιήσετε έναν μακρύ τύπο δεδομένων σε μια συμβολοσειρά - για παράδειγμα μια ημερομηνία ή μπορεί να θέλετε να εμφανίσετε ένα σύμβολο νομίσματος.

Για να το επιτύχετε αυτό, χρησιμοποιείτε τη λειτουργία Μορφοποίηση.

Η ακόλουθη διαδικασία:

1234567891011 Sub TestLongToString ()"δηλώστε τη μεταβλητή συμβολοσειράςDim strDate ως συμβολοσειρά«δηλώστε το μακρύ και συμπληρώστε την τιμήDim lngΗμερομηνία όσο καιρόlngDate = 44055«μετατρέψτε το long σε μια συμβολοσειρά μορφοποιημένη ως ημερομηνίαstrDate = Μορφή (lngDate, "ημ mmmm εεεε")"δείτε το αποτέλεσμαDebug.Print strDateΤέλος υπο

θα επιστρέψει το αποτέλεσμα παρακάτω:

και την ακόλουθη διαδικασία

1234567891011 Sub TestLongtoCurrencyString ()"δηλώστε τη μεταβλητή συμβολοσειράςDim strMoney As String«δηλώστε το μακρύ και συμπληρώστε την τιμήDim lngValue As LonglngValue = 44055«μετατρέψτε το long σε συμβολοσειρά με σύμβολο νομίσματοςstrMoney = Μορφή (lngValue, "$#, ## 0")"δείτε το αποτέλεσμαMsgBox strMoneyΤέλος υπο

θα επέστρεφε αυτό το αποτέλεσμα:

wave wave wave wave wave