Hvordan konverterer jeg integer-værdien "45" til string-værdien "45" i Excel VBA?
I de fleste tilfælde behøver du ikke at konvertere; VBA udfører en sikker implicit typekonvertering for dig uden brug af konverteringer som CStr
.
Nedenstående kode fungerer uden problemer, fordi variablen er af typen String, og den implicitte typekonvertering udføres automatisk for dig!
Dim myVal As String
Dim myNum As Integer
myVal = "My number is: "
myVal = myVal & myNum
Resultat:
"Mit nummer er: 0"
Du behøver ikke engang at blive så fancy, dette virker også:
Dim myString as String
myString = 77
"77"
Det eneste tidspunkt, hvor du skal konvertere, er, når variabeltypen er tvetydig (f.eks. type Variant eller en Cell's Value
(som er Variant)).
Selv da behøver du ikke at bruge CStr
-funktionen, hvis du sammensætter med en anden String-variabel eller konstant. Som dette:
Sheet1.Range("A1").Value = "My favorite number is " & 7
"Mit yndlingstal er 7"
Så, virkelig, det eneste sjældne tilfælde er, når du virkelig ønsker at gemme en heltalsværdi, i en variant eller Cell-værdi, når ikke også sammensætter med en anden streng (hvilket er et ret sjældent tilfælde, kan jeg tilføje):
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"