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

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

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

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

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

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

Σύνταξη

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

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

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

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

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

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

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

Κώδικας:

Sub 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

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

Κώδικας:

Sub 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", δηλαδή, ο τύπος δεδομένων μεταβλητής Long μπορεί να διατηρήσει τιμές από -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 data type, πρέπει να έχουμε κατά νου όλα τα παραπάνω πράγματα.

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

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

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