Λειτουργία VBA CDBL | Πώς να μετατρέψετε την τιμή σε διπλό τύπο δεδομένων;

Λειτουργία Excel VBA CDBL

Το VBA CDBL είναι μια ενσωματωμένη συνάρτηση μετατροπής τύπου δεδομένων και η χρήση αυτής της συνάρτησης είναι ότι μετατρέπει τον τύπο δεδομένων οποιασδήποτε δεδομένης μεταβλητής σε έναν τύπο διπλού δεδομένων, αυτή η συνάρτηση παίρνει μόνο ένα όρισμα που είναι η ίδια η τιμή της μεταβλητής.

Στο VBA "CDBL" σημαίνει "Μετατροπή σε διπλό". Αυτή η συνάρτηση μετατρέπει τον δεδομένο αριθμό σε διπλό τύπο δεδομένων. Ρίξτε μια ματιά στη σύνταξη της συνάρτησης CDBL.

  • Η έκφραση είναι η τιμή που προσπαθούμε να μετατρέψουμε σε διπλό τύπο δεδομένων.

Οποιοσδήποτε αιωρούμενος αριθμός που αποθηκεύεται ως διαφορετικός από τον διπλό τύπο δεδομένων μπορεί να μετατραπεί εφαρμόζοντας τη λειτουργία CDBL

Σημείο που πρέπει να θυμάστε εδώ: Μόνο αριθμητικές τιμές μπορούν να μετατραπούν σε διπλό τύπο δεδομένων. Οτιδήποτε άλλο εκτός από την αριθμητική τιμή δεν μπορεί να μετατραπεί σε διπλό τύπο, οπότε καταλήξτε να εμφανίζεται το "Type Mismatch Error in VBA" όπως το παρακάτω.

Έχετε χρησιμοποιήσει ποτέ έναν διπλό τύπο δεδομένων στην κωδικοποίηση VBA;

Αν όχι, αξίζει να το ρίξετε μια ματιά τώρα. Διπλό είναι ο τύπος δεδομένων που χρησιμοποιείται για την αποθήκευση της δεκαδικής θέσης του αριθμού. Μπορούμε να έχουμε έως και 13 κυμαινόμενους δεκαδικούς αριθμούς.

Για παράδειγμα, δείτε τον παρακάτω κώδικα VBA.

Στα παραπάνω, έχω ορίσει τον τύπο μεταβλητής (k) ως ακέραιο. Dim k ως ακέραιος

Στη συνέχεια, έχω εκχωρήσει την τιμή ως k = 25.4561248694615

Όταν εκτελέσω τον κωδικό θα έχουμε το αποτέλεσμα ως εξής.

Έχουμε το αποτέλεσμα ως 25. Δεδομένου ότι έχουμε ορίσει τη μεταβλητή ως Integer VBA γύρο στην πλησιέστερη ακέραια τιμή.

Για να δείξουμε το αποτέλεσμα όπως πρέπει, πρέπει να αλλάξουμε τον τύπο μεταβλητής από Integer σε Double.

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

Εντάξει, έχοντας κατά νου αυτό μπορούμε επίσης να μετατρέψουμε όλους τους αριθμούς κλάσματος που είναι καταστήματα ως μη διπλός τύπος δεδομένων.

Παραδείγματα χρήσης της συνάρτησης VBA CDBL

Μπορείτε να κατεβάσετε αυτό το Πρότυπο Λειτουργίας VBA CDBL εδώ - Πρότυπο Λειτουργίας VBA CDBL

Παράδειγμα # 1

Για να ξεκινήσετε τη διαδικασία, ας δούμε τον παρακάτω κώδικα.

Κώδικας:

 Sub Double_Example1 () Dim k As String k = 48.14869569 MsgBox k End Sub 

Τώρα θα τρέξω τον κώδικα και θα δω τι θα συμβεί.

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

Τώρα θα αλλάξω τον τύπο δεδομένων από συμβολοσειρά σε Integer.

Κώδικας:

 Sub Double_Example1 () Dim k As Integer k = 48.14869569 MsgBox k End Sub 

Τώρα θα τρέξω τον κώδικα και θα δω τι θα συμβεί.

Αυτό είναι όπου η συνάρτηση CDBL παίζει ζωτικό ρόλο για τη μετατροπή του ακέραιου τύπου δεδομένων σε διπλάσιο. Ο παρακάτω κώδικας είναι ο ίδιος για εσάς.

Κώδικας:

 Sub Double_Example1 () Dim IntegerNumber As String Dim DoubleNumber As Double IntegerNumber = 48.14869569 DoubleNumber = CDbl (IntegerNumber) MsgBox DoubleNumber End Sub 

Αυτό θα μετατρέψει την τιμή τύπου δεδομένων συμβολοσειράς σε Διπλή.

Παράδειγμα # 2

Τώρα ας μετατρέψουμε τον αριθμό 854.6947 που είναι αποθηκευμένος ως Παραλλαγή σε Διπλό τύπο δεδομένων.

Κώδικας:

 Sub Double_Example2 () Dim VaraintNumber Dim DoubleNumber As Double VaraintNumber = 854.6947 DoubleNumber = CDbl (VaraintNumber) MsgBox DoubleNumber End Sub 

Η πρώτη μεταβλητή έχω δηλώσει ως «Παραλλαγή». Dim VaraintNumber

Σημείωση: Όταν ο τύπος μεταβλητής δεν δηλώνεται, γίνεται μια καθολική παραλλαγή τύπου δεδομένων.

Στη συνέχεια, έχω δηλώσει μια ακόμη μεταβλητή, δηλαδή Dim DoubleNumber As Double

Για την πρώτη μεταβλητή VaraintNumber, έχουμε αντιστοιχίσει την τιμή ως 854.6947.

Τώρα, χρησιμοποιώντας τη δεύτερη μεταβλητή, έχουμε εφαρμόσει τη συνάρτηση CDBL για να μετατρέψουμε την τιμή παραλλαγής σε διπλό τύπο δεδομένων.

DoubleNumber = CDbl (VaraintNumber)

Το τελευταίο μέρος είναι να δείξει το αποτέλεσμα στο πλαίσιο μηνυμάτων. MsgBox DoubleNumber

Τώρα θα τρέξω τον κωδικό για να δω το αποτέλεσμα.

Πράγματα που πρέπει να θυμάστε

  • Ένας διπλός τύπος δεδομένων μπορεί να δεχτεί μόνο αριθμητικούς αριθμούς.
  • Εάν παρέχεται τιμή κειμένου, θα προκαλέσει σφάλμα τύπου Αναντιστοιχία τύπου.
  • Ένας διπλός τύπος δεδομένων μπορεί να εμφανίζει μόνο 13 ψηφία κυμαινόμενων αριθμών.