Τύπος δεδομένων παραλλαγής VBA (Dim Variable)

Τύπος μεταβλητής παραλλαγής

Μια μεταβλητή παραλλαγής μπορεί να κρατήσει οποιαδήποτε στιγμή δεδομένων (συμβολοσειρά, ακέραιοι αριθμοί, δεκαδικά, αντικείμενα κλπ.). Εάν δεν δηλώσετε έναν τύπο μεταβλητής, η μεταβλητή σας θα θεωρηθεί ως παραλλαγή.

Για να δηλώσετε μια μεταβλητή παραλλαγής, χρησιμοποιείτε τη δήλωση Dim (συντομογραφία για Dimension):

1 Dim varName as Variant
1 Dim rng ως παραλλαγή

Στη συνέχεια, για να εκχωρήσετε μια τιμή σε μια μεταβλητή, χρησιμοποιήστε απλά το πρόσημο ίσου:

1 varName = "Γιάννης"
1 rng = Φύλλα (1). Εύρος ("A1")

Βάζοντας αυτό σε μια διαδικασία μοιάζει με αυτό:

12345678910 Sub strExample ()"δηλώστε τις παραλλαγέςDim strName As VariantDim rng Ως παραλλαγή"συμπληρώστε τις μεταβλητέςstrName = "Fred Smith"Ρύθμιση rng = Φύλλα (1). Εύρος ("A1")"συμπληρώστε το φύλλοrng.Value = strNameΤέλος υπο

Εάν εκτελέσετε τον παραπάνω κώδικα, το κελί A1 στο Φύλλο 1 θα συμπληρωθεί με "Fred Smith"

Με τα ονόματα που δηλώθηκαν παραπάνω, θα μπορούσαμε να συμπεράνουμε ότι το varName θα περιείχε κείμενο και το objSheet θα περιείχε ένα αντικείμενο φύλλου εργασίας. Στην πραγματικότητα, κάθε τύπος δεδομένων μπορεί να κατευθυνθεί στη μεταβλητή.

Μπορείτε να συμπληρώσετε τις μεταβλητές που δηλώθηκαν παραπάνω ως εξής και δεν θα προκύψει σφάλμα.

1 varName = 6
1 objSheet - "Fred"

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

Δηλώστε μεταβλητή παραλλαγής σε ενότητα ή παγκόσμιο επίπεδο

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

Αντ 'αυτού, μπορείτε να δηλώσετε μεταβλητές παραλλαγών σε λειτουργικό ή καθολικό επίπεδο.

Επίπεδο ενότητας

Επίπεδο ενότητας οι μεταβλητές δηλώνονται στην κορυφή των ενοτήτων κώδικα με το Αμυδρός δήλωση.

Αυτές οι μεταβλητές μπορούν να χρησιμοποιηθούν με οποιαδήποτε διαδικασία σε αυτήν την ενότητα κώδικα.

Παγκόσμιο Επίπεδο

Παγκόσμιο επίπεδο οι μεταβλητές δηλώνονται επίσης στην κορυφή των ενοτήτων κώδικα. Ωστόσο, αντί να χρησιμοποιήσετε το Αμυδρός δήλωση, χρησιμοποιείτε το Δημόσιο δήλωση για να υποδείξετε ότι η μεταβλητή συμβολοσειράς είναι διαθέσιμη για χρήση σε όλο το έργο VBA.

1 Public strName as Variant

Εάν δηλώσετε τη μεταβλητή παραλλαγής σε επίπεδο λειτουργικής μονάδας και τη χρησιμοποιήσετε σε διαφορετική ενότητα, θα εμφανιστεί σφάλμα.

Εάν είχατε χρησιμοποιήσει τη δημόσια λέξη -κλειδί για να δηλώσετε τη μεταβλητή παραλλαγής, το σφάλμα δεν θα εμφανιστεί και η διαδικασία θα εκτελεστεί τέλεια.

Χρησιμοποιώντας μια παραλλαγή για να συμπληρώσετε το Excel

Εξετάστε την ακόλουθη διαδικασία:

12345678910111213141516171819 Sub TestVariable"δηλώστε μια συμβολοσειρά για να κρατήσετε το όνομα του προϊόντοςDim str Προϊόν ως συμβολοσειρά«δηλώστε έναν ακέραιο για να κρατήσετε την ποσότητα προϊόντοςDim iQty ως ακέραιος«δηλώστε διπλά για να κρατήσετε την τιμή του προϊόντος και τη συνολική τιμήDim dblΤιμή ως διπλόDim dblΣύνολο ως διπλό"συμπληρώστε τις μεταβλητέςstrProduct = "Αλεύρι για όλες τις χρήσεις"iQty = 3dblPrice = "5,00 $"dblTotal = "15,00 $""συμπληρώστε το φύλλο ExcelΕύρος ("A1") = strProductΕύρος ("A2") = iQtyΕύρος ("A3") = dblΤιμήΕύρος ("A4") = dblTotalΤέλος υπο

Όταν εκτελούμε αυτόν τον κώδικα, εμφανίζεται το ακόλουθο σφάλμα.

Κάντε κλικ στην εντολή Σφάλμα

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

Δηλώνω dblΤιμή και dblΣυνολικά ως Παραλλαγές που σημαίνει ότι δεν περιορίζεστε σε έναν τύπο δεδομένων.

1 Dim dblΤιμή ως παραλλαγή
1 Dim dblTotal ως Παραλλαγή

Εκτελέστε ξανά τον κώδικα και τα δεδομένα θα εμφανιστούν στο φύλλο του Excel όπως θα έπρεπε.

Σημειώστε ότι τα δεδομένα που εισάγονται στα Α4 και Α5 μετατρέπονται αυτόματα στη συνέχεια από το Excel σε αριθμούς.

Δήλωση δυναμικού πίνακα

Οι μεταβλητές παραλλαγών είναι επίσης χρήσιμες όταν δηλώνετε έναν δυναμικό πίνακα καθώς επιτρέπουν στο μέγεθος του πίνακα να αλλάζει κατά τη διάρκεια του χρόνου εκτέλεσης.

ΜεVariant Array, δεν χρειάζεται να ορίσετε το μέγεθος του πίνακα. Το μέγεθος θα προσαρμοστεί αυτόματα.

123456789 Sub VariantArray ()Dim arrList () Ως παραλλαγή«Καθορίστε ΑξίεςarrList = Array (1, 2, 3, 4)'Αλλάζω αξίεςarrList = Array (1,2,3,4,5,6)«Θέση εξόδου 4MsgBox arrVar (4)Τέλος υπο

Θα βοηθήσει στην ανάπτυξη του τόπου, μοιράζονται τη σελίδα με τους φίλους σας

wave wave wave wave wave