VBA String to Integer - Χρησιμοποιήστε τη συνάρτηση CINT για μετατροπή δεδομένων

Πίνακας περιεχομένων

Συμβολοσειρά Excel VBA στο Integer

Το String και το Integer είναι συνηθισμένοι τύποι δεδομένων, αλλά συχνά ως μέρος της ανάλυσης δεδομένων μας, ίσως θέλουμε να μετατρέψουμε τη μεταβλητή τύπου δεδομένων συμβολοσειράς σε ακέραιο τύπο δεδομένων και αυτό είναι δυνατό χρησιμοποιώντας τη συνάρτηση "CINT" στο VBA.

Σύνταξη της συνάρτησης CINT

Το "CINT" κατηγοριοποιείται ως συνάρτηση μετατροπής τύπου δεδομένων. Αυτή η συνάρτηση μετατρέπει την παρεχόμενη έκφραση σε έναν τύπο δεδομένων ακέραιου. Όταν λέω "Έκφραση", πρέπει να είναι μια αριθμητική τιμή που βρίσκεται στο εύρος του τύπου δεδομένων ακέραιου στο VBA, δηλαδή μεταξύ -32768 και 32767.

Τώρα, δείτε τη σύνταξη της συνάρτησης CINT στο VBA.

  • Η έκφραση είναι η τιμή ή η μεταβλητή που περιέχει την τιμή που πρόκειται να μετατραπεί σε ακέραιο τύπο δεδομένων.
Σημείωση 1: Ακριβώς όταν μεταβιβάζετε την τιμή έκφρασης πρέπει να κυμαίνεται μεταξύ -32768 και 32767. Διαφορετικά, θα οδηγήσει σε "Over Flow Error", δηλ. Εκχώρηση της τιμής που υπερβαίνει το όριο του τύπου δεδομένων. Σημείωση 2: Η έκφραση πρέπει να είναι αριθμητική τιμή. Εάν η έκφραση είναι τιμή συμβολοσειράς ή τιμή κειμένου, θα προκαλέσει "Σφάλμα χρόνου εκτέλεσης 13: Αναντιστοιχία τύπου".

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

Παραδείγματα συνάρτησης CINT στο VBA

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

Ας εκτελέσουμε το πρώτο παράδειγμα μετατροπής ενός κλάσματος αριθμού σε Integer Data Type.

Κώδικας:

Υπο CINT_Example1 () Dim IntegerNumber As String Dim IntegerResult As Integer IntegerNumber = 2564.589 IntegerResult = CInt (IntegerNumber) MsgBox IntegerResult End Sub
  • Στον παραπάνω κώδικα για τη μεταβλητή "IntegerNumber", έχω εκχωρήσει την τιμή ως "2564.589".
  • Στην επόμενη γραμμή, έχω εφαρμόσει μια συνάρτηση CINT. Έτσι θα μετατρέψει την παρεχόμενη τιμή στον πλησιέστερο ακέραιο αριθμό.

Λοιπόν, έχουμε το αποτέλεσμα - 2565, και ο παρεχόμενος αριθμός είναι 2564.589. Όταν η δεκαδική τιμή είναι μεγαλύτερη από 0,5 CINT, στρογγυλοποιεί τον αριθμό στον επόμενο ακέραιο αριθμό. Όταν η δεκαδική τιμή είναι μικρότερη ή ίση με 0,5 συναρτήσεις CINT προς τα κάτω στον ίδιο ακέραιο αριθμό.

Για παράδειγμα, δείτε τον παρακάτω κώδικα όπου ο αριθμός είναι μικρότερος από 0,5

Κώδικας:

Sub CINT_Example1 () Dim IntegerNumber As String Dim IntegerResult As Integer IntegerNumber = 2564 - 0.5 IntegerResult = CInt (IntegerNumber) MsgBox IntegerResult End Sub

Αυτό θα δώσει το αποτέλεσμα ως 2564, όχι 2565.

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

Τώρα θα προσπαθήσω να εκχωρήσω τον αριθμό που υπερβαίνει το όριο του τύπου δεδομένων Integer.

Κώδικας:

Υπο CINT_Example2 () Dim IntegerNumber As String Dim IntegerResult As Integer IntegerNumber = 51456.785 IntegerResult = CInt (IntegerNumber) MsgBox IntegerResult End Sub

Έχω εκχωρήσει τον αριθμό ως "IntegerNumber = 51456.785" που υπερβαίνει το όριο του ορίου τύπου δεδομένων Integer. Τώρα αν προσπαθήσω να τρέξω τον κώδικα, θα προκαλέσει σφάλμα υπερχείλισης στο VBA.

Όποτε ο παρεχόμενος αριθμός είναι μεγαλύτερος από τον τύπο δεδομένων Integer, ας δείξουμε το απλό πλαίσιο μηνύματος που λέει "Ο αριθμός είναι περισσότερο από το όριο του τύπου δεδομένων ακέραιου".

Κώδικας:

Sub CINT_Example2 () Dim IntegerNumber As String Dim IntegerResult As Integer IntegerNumber = 51456.785 On Error GoTo Message: IntegerResult = CInt (IntegerNumber) Μήνυμα: If Err.Number = 6 Στη συνέχεια, το MsgBox IntegerNumber & "είναι περισσότερο από το όριο του τύπου του ορίου Τέλος Υποτ

Αυτό θα εμφανίσει το μήνυμα όπως το παρακάτω κάθε φορά που ο παρεχόμενος αριθμός είναι εκτός του εύρους τύπου Integer δεδομένων

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

Τώρα θα προσπαθήσω να εκχωρήσω την τιμή που δεν είναι αριθμητική.

Υπο CINT_Example2 () Dim IntegerNumber As String Dim IntegerResult As Integer IntegerNumber = "Hello" IntegerResult = CInt (IntegerNumber) MsgBox IntegerResult End Sub

Έχω εκχωρήσει την τιμή ως "Γεια" που δεν είναι αριθμητική. Αυτό προκαλεί "Σφάλμα αναντιστοιχίας τύπου".

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

Κώδικας:

Sub CINT_Example2 () Dim IntegerNumber As String Dim IntegerResult As Integer IntegerNumber = "Hello" On Error GoTo Message: IntegerResult = CInt (IntegerNumber) Μήνυμα: If Err.Number = 13 Τότε MsgBox IntegerNumber & ": Η παρεχόμενη τιμή έκφρασης είναι μη-τιμή , Άρα δεν μπορεί να μετατραπεί "End Sub

Αυτό θα εμφανίσει το παρακάτω πλαίσιο μηνύματος.

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

  • Το CINT μετατρέπει την τιμή από άλλο τύπο δεδομένων σε ακέραιο τύπο δεδομένων.
  • Ο ακέραιος μπορεί να κρατήσει τιμές από -32768 έως 32767 οτιδήποτε πάνω από αυτούς τους αριθμούς θα προκαλέσει σφάλμα υπερχείλισης.
  • Μόνο ο τύπος δεδομένων συμβολοσειράς περιέχει αριθμητικά δεδομένα που θα μετατραπούν σε ακέραιο τύπο δεδομένων.

Συνιστώμενα άρθρα

Αυτός ήταν ένας οδηγός για το VBA String to Integer. Εδώ συζητάμε παραδείγματα συμβολοσειράς σε ακέραιο στο Excel VBA χρησιμοποιώντας τη συνάρτηση CINT μαζί με πρακτικά παραδείγματα και πρότυπο excel με δυνατότητα λήψης. Ακολουθούν μερικά χρήσιμα άρθρα που σχετίζονται με το VBA -

  • VBA Split String in Array
  • Συμβολοσειρά VBA έως σήμερα
  • Σύγκριση συμβολοσειρών VBA
  • Αντικατάσταση συμβολοσειράς VBA

ενδιαφέροντα άρθρα...