VBA Μετατροπή συμβολοσειράς κειμένου σε αριθμό

Ενδέχεται να σας ζητηθεί να μετατρέψετε αριθμούς που είναι αποθηκευμένοι ως κείμενο σε πραγματικούς αριθμούς στον κωδικό VBA. Σε αυτό το σεμινάριο, θα εξετάσουμε τις συναρτήσεις που πρέπει να χρησιμοποιήσετε για να μετατρέψετε μια συμβολοσειρά σε ακέραιο, μεγάλο, διπλό, δεκαδικό ή τύπο δεδομένων νομίσματος (Κάντε κλικ εδώ για να μάθετε σχετικά με τη μετατροπή αριθμών σε συμβολοσειρές)

Μετατροπή συμβολοσειράς σε ακέραιο

Μπορείτε να χρησιμοποιήσετε τη συνάρτηση CInt ή CLng για να μετατρέψετε μια συμβολοσειρά σε ακέραιο. Εάν το κλάσμα είναι μικρότερο από .5, η συνάρτηση στρογγυλοποιείται προς τα κάτω, εάν το κλάσμα είναι μεγαλύτερο ή ίσο με .5, η συνάρτηση θα στρογγυλοποιηθεί προς τα πάνω. Ο ακόλουθος κώδικας θα μετατρέψει μια συμβολοσειρά σε ακέραιο:

1 MsgBox CInt ("7.55")

Το αποτέλεσμα είναι:

Ο ακόλουθος κώδικας χρησιμοποιεί τη συνάρτηση CLng για να μετατρέψει μια συμβολοσειρά σε ακέραιο:

1 MsgBox CLng ("13.5")

Το αποτέλεσμα είναι:

Σημείωση: Μπορείτε να χρησιμοποιήσετε τη συνάρτηση CInt ή CLng για να μετατρέψετε μια συμβολοσειρά σε ακέραιους ή μεγάλους (αντίστοιχα) τύπους δεδομένων. Ο τύπος Long Data είναι ο ίδιος με έναν ακέραιο τύπο δεδομένων, εκτός εάν επιτρέπονται μεγαλύτεροι αριθμοί. Στο παρελθόν, η διάκριση ήταν απαραίτητη λόγω περιορισμών μνήμης. Στον σύγχρονο προγραμματισμό, δεν υπάρχει κανένας λόγος να μην χρησιμοποιείτε τον μακρύ τύπο δεδομένων, καθώς η μνήμη δεν αποτελεί πλέον πρόβλημα. Έτσι, είναι πάντα καλύτερο να χρησιμοποιείτε έναν μακρύ τύπο δεδομένων αντί για έναν ακέραιο.

Μπορείτε να χρησιμοποιήσετε το άμεσο παράθυρο για να δείτε πώς θα υποβληθεί σε επεξεργασία η τιμή αν δεν μετατραπεί σε ακέραιο:

1 Debug.Print "13.5" + "13.5"


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

1234567 Sub Using_Variables ()Dim valueOne As StringvalueOne = 5MsgBox CLng (valueOne) + CLng (valueOne)Τέλος υπο

Μετατροπή συμβολοσειράς σε δεκαδικό

Μπορείτε να χρησιμοποιήσετε τη συνάρτηση CDbl ή CDec για να μετατρέψετε μια συμβολοσειρά σε δεκαδικό. Ο ακόλουθος κώδικας θα μετατρέψει μια συμβολοσειρά σε διπλό τύπο δεδομένων:

1 MsgBox CDbl ("9.1819")

Το αποτέλεσμα είναι:

Ο ακόλουθος κώδικας θα μετατρέψει μια συμβολοσειρά σε δεκαδικό τύπο δεδομένων:

1 MsgBox CDec ("13.57") + CDec ("13.4")

Το αποτέλεσμα είναι:

Μπορείτε να χρησιμοποιήσετε το άμεσο παράθυρο για να δείτε πώς θα υποβληθεί σε επεξεργασία η τιμή εάν δεν μετατραπεί σε διπλό ή δεκαδικό τύπο δεδομένων:

1 Debug.Print "13.57" + "13.4"

Το αποτέλεσμα είναι:

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

Μετατροπή συμβολοσειράς σε νόμισμα

Μπορείτε να χρησιμοποιήσετε τη συνάρτηση CCur για να μετατρέψετε μια συμβολοσειρά σε νόμισμα. Ο ακόλουθος κώδικας θα μετατρέψει μια συμβολοσειρά σε τύπο δεδομένων νομίσματος:

1 Εύρος ("A1"). Τιμή = CCur ("18.5")

Το αποτέλεσμα είναι:

Θα βοηθήσει στην ανάπτυξη του τόπου, μοιράζονται τη σελίδα με τους φίλους σας

wave wave wave wave wave