Πώς μπορώ να μετατρέψω την τιμή ακέραιος "45" στην τιμή string "45" στο Excel VBA;
CStr(45)
είναι το μόνο που χρειάζεστε (η συνάρτηση Convert String)
Τις περισσότερες φορές, δεν θα χρειαστεί να "μετατρέψετε"; Η VBA θα κάνει ασφαλή σιωπηρή μετατροπή τύπου για εσάς, χωρίς τη χρήση μετατροπέων όπως το CStr
.
Ο παρακάτω κώδικας λειτουργεί χωρίς κανένα πρόβλημα, επειδή η μεταβλητή είναι τύπου String, και η έμμεση μετατροπή τύπου γίνεται αυτόματα για εσάς!
Dim myVal As String
Dim myNum As Integer
myVal = "My number is: "
myVal = myVal & myNum
Αποτέλεσμα:
"Ο αριθμός μου είναι: 0",
Δεν χρειάζεται καν να γίνετε τόσο φανταχτερός, λειτουργεί και αυτό:
Dim myString as String
myString = 77
"77",
Η μόνη περίπτωση που ΘΑ χρειαστεί να μετατρέψετε είναι όταν ο Τύπος της μεταβλητής είναι διφορούμενος (π.χ., Τύπος Variant, ή το "Value" ενός κελιού (το οποίο είναι Variant)).
Ακόμα και τότε, δεν θα'χρειαστεί να χρησιμοποιήσετε τη συνάρτηση CStr
αν'συνθέτετε με μια άλλη μεταβλητή String ή σταθερά. Όπως αυτό:
Sheet1.Range("A1").Value = "My favorite number is " & 7
"Ο αγαπημένος μου αριθμός είναι το 7",
Οπότε, πραγματικά, η μόνη σπάνια περίπτωση είναι όταν θέλεις πραγματικά να αποθηκεύσεις μια ακέραια τιμή, σε μια παραλλαγή ή τιμή Cell, όταν δεν συνθέτεις επίσης με ένα άλλο αλφαριθμητικό (που είναι μια αρκετά σπάνια παράπλευρη περίπτωση, θα μπορούσα να προσθέσω):
Dim i as Integer
i = 7
Sheet1.Range("A1").Value = i
7
Dim i as Integer
i = 7
Sheet1.Range("A1").Value = CStr(i)
"7",