Παραλλαγή VBA | Πώς να δηλώσετε τον τύπο δεδομένων παραλλαγής στο Excel VBA;

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

Έχω παραλείψει ως τμήμα [Όνομα τύπου δεδομένων], επειδή τη στιγμή που αγνοούμε το τμήμα εκχώρησης τύπου δεδομένων, η μεταβλητή μεταβάλλεται πάντοτε.

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

Παρόλο που ο τύπος δεδομένων "Παραλλαγή" είναι ευέλικτος με δεδομένα που πρόκειται να αποθηκεύσουμε, αυτός δεν είναι ο δημοφιλής τύπος δεδομένων. Φαίνεται περίεργο αλλά απολύτως ΑΛΗΘΕ. Εκτός αν υπάρχει συγκεκριμένος λόγος για τη χρήση, οι χρήστες αποφεύγουν τη χρήση αυτού του τύπου δεδομένων. Παρακάτω είναι μερικοί από τους λόγους για την αποφυγή της χρήσης της παραλλαγής.

  • Αγνοεί όλα τα λάθη αναντιστοιχίας δεδομένων.
  • Ο τύπος δεδομένων παραλλαγής μας περιορίζει από την πρόσβαση στη λίστα IntelliSense.
  • Η VBA μαντεύει πάντα τον καλύτερο δυνατό τύπο δεδομένων και αντιστοιχίζει ανάλογα.
  • Στην περίπτωση ορίου ακέραιου τύπου τύπου Ο τύπος δεδομένων παραλλαγής δεν μας ειδοποιεί τη στιγμή που ξεπερνά τα 32767 όρια.

$config[zx-auto] not found$config[zx-overlay] not found