Τύπος παραλλαγής Excel VBA
Ο τύπος δεδομένων παραλλαγής στο VBA είναι ένας καθολικός τύπος δεδομένων που μπορεί να περιέχει οποιοδήποτε είδος τύπου δεδομένων, αλλά κατά την εκχώρηση του τύπου δεδομένων πρέπει να χρησιμοποιήσουμε τη λέξη «Variant».
Όλοι γνωρίζουμε πόσο σημαντικές είναι οι μεταβλητές στα έργα VBA. Μόλις δηλωθεί η μεταβλητή, πρέπει να αντιστοιχίσουμε έναν τύπο δεδομένων στις δηλωμένες μεταβλητές. Η εκχώρηση τύπου δεδομένων στο VBA εξαρτάται από το είδος των δεδομένων που πρέπει να εκχωρήσουμε στις δηλωμένες μεταβλητές.
Για παράδειγμα, δείτε τον παρακάτω κώδικα.

Στον παραπάνω κώδικα, έχω δηλώσει τη μεταβλητή ως "IntegerNumber" και έχω εκχωρήσει τον τύπο δεδομένων ως "Integer".
Πριν εκχωρήσω τον τύπο δεδομένων στη μεταβλητή, πρέπει να γνωρίζω τους περιορισμούς της μεταβλητής. Δεδομένου ότι έχω εκχωρήσει τον τύπο δεδομένων ως ακέραιο, η μεταβλητή μου μπορεί να κρατήσει τους αριθμούς από -32768 έως 32767.
Οτιδήποτε περισσότερο από το όριο του ορίου τύπου δεδομένων θα προκαλέσει σφάλμα. Επομένως, εάν θέλουμε να αποθηκεύσουμε περισσότερες από 32767 τιμές, πρέπει να αντιστοιχίσουμε τους διαφορετικούς τύπους δεδομένων, οι οποίοι μπορούν να κρατήσουν περισσότερους από 32767.
Για να ξεπεράσουμε αυτόν τον περιορισμό, έχουμε έναν καθολικό τύπο δεδομένων "Variant". Αυτό το άρθρο θα σας δείξει τον πλήρη οδηγό ενός τύπου δεδομένων παραλλαγής.

Πώς να δηλώσετε παραλλαγή τύπου δεδομένων;
Μπορούμε να δηλώσουμε τον τύπο δεδομένων παραλλαγής ως τον συνηθισμένο τύπο δεδομένων, αλλά κατά την εκχώρηση του τύπου δεδομένων, πρέπει να χρησιμοποιήσουμε τη λέξη «Παραλλαγή».
Κώδικας:
Υπο Variant_Example1 () Dim MyNumber ως Variant End Sub

Αυτό κάνει τη μεταβλητή να λειτουργεί κάθε είδους δεδομένα τώρα. Μπορούμε να αντιστοιχίσουμε αριθμούς, συμβολοσειρές, ημερομηνίες και πολλά άλλα πράγματα.
Παρακάτω είναι η επίδειξη του ίδιου.
Κώδικας:
Sub Variant_Example1 () Dim MonthName As Variant Dim MyDate As Variant Dim MyNumber As Variant Dim MyName As Variant MonthName = "January" MyDate = "24-04-2019" MyNumber = 4563 MyName = "Το όνομά μου είναι Excel VBA" End Sub

Στα παραπάνω, έχω εκχωρήσει μια ημερομηνία στη μεταβλητή, έναν αριθμό στη μεταβλητή, μια συμβολοσειρά στη μεταβλητή. Έτσι, ο τύπος παραλλαγών δεδομένων μας επιτρέπει να μην ανησυχούμε για το είδος των δεδομένων που πρόκειται να αποθηκεύσουμε ή να εκχωρήσουμε σε αυτόν.
Μόλις δηλώσουμε μια μεταβλητή ως Variant, δεν χρειάζεται να ανησυχούμε για τον τύπο δεδομένων μας κάπου στη μέση του έργου κατά την κωδικοποίηση. Αυτό κάνει τη μεταβλητή να λειτουργεί ευέλικτα στις ανάγκες μας. Πιθανώς με μία μόνο μεταβλητή, μπορούμε να πραγματοποιήσουμε τις λειτουργίες μας σε ολόκληρο το έργο.
Η παραλλαγή VBA δεν απαιτεί ρητό τρόπο
Η γενική διαδικασία για να δηλώσετε μια μεταβλητή VBA είναι να ονομάσετε πρώτα τη μεταβλητή και στη συνέχεια να αντιστοιχίσετε τον τύπο δεδομένων σε αυτήν. Παρακάτω είναι ένα παράδειγμα του ίδιου.

Αυτός είναι ο ρητός τρόπος δήλωσης της μεταβλητής. Ωστόσο, όταν δηλώνουμε τον τύπο δεδομένων παραλλαγής, δεν χρειάζεται να τα δηλώσουμε ρητά. μάλλον, μπορούμε απλώς να ονομάσουμε τη μεταβλητή και να αφήσουμε το τμήμα τύπου δεδομένων.
Κώδικας:
Υπο Variant_Example1 () Dim MyNumber End Sub
Στον παραπάνω κώδικα, έχω ονομάσει τη μεταβλητή ως "MyNumber", αλλά μετά την ονομασία της μεταβλητής, δεν έχω εκχωρήσει κανένα είδος τύπου δεδομένων σε αυτήν.
Έχω αφήσει το τμήμα As (Όνομα τύπου δεδομένων) επειδή τη στιγμή που αγνοούμε το τμήμα εκχώρησης τύπου δεδομένων, η μεταβλητή μεταβάλλεται πάντοτε.
Πράγματα που πρέπει να θυμάστε
Παρόλο που ο τύπος δεδομένων "Παραλλαγή" είναι ευέλικτος με δεδομένα που πρόκειται να αποθηκεύσουμε, αυτός δεν είναι ο δημοφιλής τύπος δεδομένων. Φαίνεται περίεργο αλλά απολύτως ΑΛΗΘΕ. Εκτός αν υπάρχει συγκεκριμένος λόγος για τη χρήση, οι χρήστες αποφεύγουν τη χρήση αυτού του τύπου δεδομένων. Παρακάτω είναι μερικοί από τους λόγους για την αποφυγή της χρήσης της παραλλαγής.
- Αγνοεί όλα τα λάθη αναντιστοιχίας δεδομένων.
- Ο τύπος δεδομένων παραλλαγής μας περιορίζει από την πρόσβαση στη λίστα IntelliSense.
- Η VBA μαντεύει πάντα τον καλύτερο δυνατό τύπο δεδομένων και αντιστοιχίζει ανάλογα.
- Στην περίπτωση του ορίου τύπου δεδομένων ακέραιου, ο τύπος δεδομένων παραλλαγής δεν μας ειδοποιεί τη στιγμή που υπερβαίνει τα 32767 όρια.