Τύπος δεδομένων συμβολοσειράς VBA (Dim Variable)

Τύπος μεταβλητής συμβολοσειράς

Ο τύπος δεδομένων συμβολοσειράς είναι ένας από τους πιο συνηθισμένους τύπους δεδομένων στο VBA. Αποθηκεύει "χορδές" κειμένου.

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

1 Dim strName ως συμβολοσειρά

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

1 strName = "Fred Smith"

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

12345678 Sub strExample ()"δηλώστε τη συμβολοσειράDim strName ως συμβολοσειρά"συμπληρώστε τη συμβολοσειράstrName = "Fred Smith""εμφάνιση του πλαισίου μηνυμάτωνMsgBox strnameΤέλος υπο

Εάν εκτελέσετε τον παραπάνω κώδικα, θα εμφανιστεί το ακόλουθο πλαίσιο μηνυμάτων.

Σταθερή μεταβλητή συμβολοσειράς

Στην πραγματικότητα υπάρχουν 2 τύποι μεταβλητών συμβολοσειράς - σταθερές και μεταβλητές.

Η μεταβλητή συμβολοσειράς "μεταβλητή" (φαίνεται στο προηγούμενο παράδειγμα) επιτρέπει στη συμβολοσειρά σας να έχει οποιοδήποτε μήκος. Αυτό είναι το πιο συνηθισμένο.

Η "σταθερή" μεταβλητή συμβολοσειράς ορίζει το μέγεθος της συμβολοσειράς. Μια σταθερή συμβολοσειρά μπορεί να χωρέσει έως 65.400 χαρακτήρες.

1 Dim strName ως συμβολοσειρά *20

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

Παρατηρήστε τα κενά στο παρακάτω γράφημα - η μεταβλητή έχει κάτοχους θέσης για τους υπόλοιπους χαρακτήρες της συμβολοσειράς, καθώς το 'Fred Smith' είναι μικρότερο από 20 χαρακτήρες.

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

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

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

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

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

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

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

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

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

1 Δημόσιο strName ως συμβολοσειρά

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

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

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

Μπορεί να υπάρξει κάποια στιγμή που έχετε τιμές στο Excel που είναι αποθηκευμένες ως κείμενο - για παράδειγμα, μπορεί να έχετε εισαγάγει ένα αρχείο CSV το οποίο ενδέχεται να έχει εισαγάγει κείμενο αντί αριθμών.

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

Μπορείτε να χρησιμοποιήσετε ένα Λειτουργία VBA μπορεί να χρησιμοποιηθεί για τη μετατροπή αυτών των αριθμών σε κείμενο

12345678 Sub ConvertValue ()"συμπληρώστε τη συμβολοσειράstrQty = Εύρος ("A1")"συμπληρώστε το διπλό με τη συμβολοσειράdblQty = strQty"συμπληρώστε το εύρος με τον αριθμόΕύρος ("A1") = dblQtyΤέλος υπο

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

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

123456789101112131415 Sub ConvertValue ()Dim strQty As String, dblQty As DoubleDim rw Ως ακέραιος, i ως ακέραιος«μετρήστε τις γραμμές για μετατροπήrw = Range ("A1", Range ("A1"). End (xlDown)). Rows.Countβρόχο στα κελιά και μετατροπή του καθενός σε έναν αριθμόΓια i = 0 έως rw - 1"συμπληρώστε τη συμβολοσειράstrQty = Εύρος ("A1"). Offset (i, 0)"συμπληρώστε το διπλό με τη συμβολοσειράdblQty = strQty"συμπληρώστε το εύρος με τον αριθμόΕύρος ("A1"). Offset (i, 0) = dblQtyΕπόμενο iΤέλος υπο

Το αποτέλεσμα θα είναι ότι όλα τα κελιά θα μετατραπούν σε αριθμούς

Κουραστήκατε να ψάχνετε για παραδείγματα κώδικα VBA; Δοκιμάστε το AutoMacro!

Μετατροπή συμβολοσειράς που είναι αποθηκευμένη ως τιμή

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

123456789101112131415 Sub ConvertString ()Dim strPhone As String, dblPhone As DoubleDim rw Ως ακέραιος, i ως ακέραιος«μετρήστε τις γραμμές για μετατροπήrw = Range ("A1", Range ("A1"). End (xlDown)). Rows.Countβρόχο στα κελιά και μετατροπή του καθενός σε έναν αριθμόΓια i = 0 έως rw - 1"συμπληρώστε τη συμβολοσειράdblPhone = Εύρος ("A1"). Offset (i, 0)"συμπληρώστε το διπλό με τη συμβολοσειράstrPhone = "'0" & dblPhone"συμπληρώστε το εύρος με τον αριθμόΕύρος ("A1"). Offset (i, 0) = strphoneΕπόμενο iΤέλος υπο

Σημειώστε ότι πρέπει να ξεκινήσετε τη συμβολοσειρά κειμένου με απόστροφο (‘), πριν από το μηδέν για να πείτε στο Excel να εισαγάγει την τιμή ως συμβολοσειρά.

wave wave wave wave wave