Λειτουργία VBA CLng | Πώς να χρησιμοποιήσετε τη λειτουργία CLng; (με παραδείγματα)

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

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

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

Συχνά, μπορεί να εκχωρήσουμε τα αριθμητικά δεδομένα ως "String", ώστε αυτό να προκαλέσει σφάλμα κατά τον υπολογισμό, οπότε χρησιμοποιώντας τις λειτουργίες μετατροπής μπορούμε να μετατρέψουμε τον τύπο δεδομένων που θέλουμε. Οι λειτουργίες μετατροπέα που χρησιμοποιούνται συνήθως είναι CLng, CInt, CDbl, CDate, CDec in vba. Σε αυτό το άρθρο, θα σας δείξουμε τη συνάρτηση μετατροπής ακέραιου τύπου δεδομένων "CLNG".

Σύνταξη

Παρακάτω είναι η σύνταξη της συνάρτησης CLNG.

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

Σημείωση: Η τιμή που προσπαθούμε να μετατρέψουμε πρέπει να είναι αριθμητική οτιδήποτε άλλο εκτός από την αριθμητική τιμή θα προκαλέσει "Σφάλμα χρόνου εκτέλεσης 13: Αναντιστοιχία τύπου"

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

Μπορείτε να κάνετε λήψη αυτού του προτύπου VBA CLNG Excel εδώ - Πρότυπο VBA CLNG Excel

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

Τώρα θα δούμε πώς θα μετατρέψουμε την αποθηκευμένη τιμή κειμένου στον τύπο δεδομένων «Long».

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

Κώδικας:

 Υπο CLNG_Example1 () Dim LongNumber As String Dim LongResult As Long LongNumber = "2564589" LongResult = CLng (LongNumber) MsgBox LongResult End Sub 

Εξετάστε λοιπόν προσεκτικά τον κώδικα για να καταλάβετε πώς λειτουργεί.

Πρώτον, έχουμε δηλώσει δύο μεταβλητές String και Long αντίστοιχα.

Κώδικας:

 Dim LongNumber as String Dim LongResult As Long 

Για τη μεταβλητή συμβολοσειράς έχουμε εκχωρήσει τον αριθμό τιμής αλλά σε διπλά εισαγωγικά, οπότε αυτό που θα κάνει είναι να αντιμετωπίζει τον αριθμό "2564589" ως συμβολοσειρά, όχι ως μεταβλητή "Long". Τώρα για την άλλη μεταβλητή LongResult, χρησιμοποιήσαμε τη συνάρτηση Clng (LongNumber) για να μετατρέψουμε τον αποθηκευμένο αριθμό συμβολοσειράς σε μεταβλητή LONG.

Το επόμενο πλαίσιο μηνύματος θα εμφανίσει το αποτέλεσμα ως ΜΕΓΑΛΟ αριθμό που μετατρέπεται από συμβολοσειρά σε μακρύ τύπο δεδομένων.

Παραγωγή:

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

Τώρα ρίξτε μια ματιά στον παρακάτω κώδικα.

Κώδικας:

 Υπο CLNG_Example2 () Dim LongNumber As String Dim LongResult As Long LongNumber = "Long Number" LongResult = CLng (LongNumber) MsgBox LongResult End Sub 

Αυτό θα μας δώσει το αποτέλεσμα ως "Αναντιστοιχία τύπου" .

Η κατανόηση του γιατί συμβαίνει το σφάλμα είναι πολύ σημαντική για να διορθωθεί το σφάλμα. Όταν κοιτάζετε προσεκτικά τις μεταβλητές για την πρώτη μεταβλητή LongNumber έχουμε αντιστοιχίσει την τιμή κειμένου ως "Long Number", τότε χρησιμοποιήσαμε τη συνάρτηση excel VBA CLNG για να το μετατρέψουμε στον τύπο δεδομένων LONG.

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

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

Ένα ακόμη σφάλμα που λαμβάνουμε με τον τύπο δεδομένων LONG είναι το "Overflow Error in vba", δηλαδή ο τύπος μεγάλων μεταβλητών δεδομένων μπορεί να διατηρήσει τιμές από -2.147.483.648 έως 2.147.483.647. Επομένως, οποιαδήποτε τιμή παραπάνω θα προκαλέσει σφάλμα υπερχείλισης.

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

Κώδικας:

 Υπο CLNG_Example3 () Dim LongNumber As String Dim LongResult As Long LongNumber = "25645890003" LongResult = CLng (LongNumber) MsgBox LongResult End Sub 

Για τη μεταβλητή "LongNumber" έχω εκχωρήσει τον αριθμό "25645890003" που υπερβαίνει το όριο του τύπου "Long". Όταν εκτελούμε τον παραπάνω κώδικα, θα αντιμετωπίσει ένα σφάλμα "Overflow" .

Έτσι, όταν μετατρέπετε οποιονδήποτε άλλο τύπο δεδομένων σε τύπο δεδομένων Long, πρέπει να λάβετε υπόψη όλα τα παραπάνω πράγματα.

Αυτό που πρέπει να θυμάστε εδώ

  • Το CLNG σημαίνει μετατροπή σε μεγάλο.
  • Αυτή η συνάρτηση μετατρέπει τον άλλο τύπο δεδομένων σε έναν μακρύ τύπο δεδομένων.
  • Πρέπει να γνωρίζετε το όριο του μεγάλου τύπου δεδομένων για να αποφύγετε το σφάλμα υπερχείλισης.