Miten muunnan ympyrä-arvon "45" merkkijono-arvoksi "45" Excel VBA:ssa?
Useimmiten sinun ei tarvitse "muuntaa"; VBA tekee turvallisen implisiittisen tyyppimuunnoksen puolestasi ilman CStr
:n kaltaisten muunninten käyttöä.
Alla oleva koodi toimii ongelmitta, koska muuttuja on tyypiltään String, ja epäsuora tyypinmuunnos tehdään puolestasi automaattisesti!.
Dim myVal As String
Dim myNum As Integer
myVal = "My number is: "
myVal = myVal & myNum
Tulos:
"Numeroni on: 0"
Sinun ei'ei tarvitse edes tehdä noin hienoa, tämäkin toimii:
Dim myString as String
myString = 77
"77"
Ainut kerta, jolloin sinun on muunnettava, on kun muuttujan tyyppi on moniselitteinen (esim. tyyppi Variantti tai solun Arvo
(joka on Variantti)).
Silloinkin sinun ei tarvitse käyttää CStr
-funktiota, jos yhdistät sen toiseen String-muuttujaan tai vakioon. Esimerkiksi näin:
Sheet1.Range("A1").Value = "My favorite number is " & 7
"Lempinumeroni on 7"
Eli oikeastaan ainoa harvinainen tapaus on se, kun todella haluat tallentaa kokonaislukuarvon, varianttiin tai Cell-arvoon, kun ei myös yhdistetä toiseen merkkijonoon (mikä on aika harvinainen sivutapaus, voisin lisätä):
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"