Miten muunnan kokonaisluvun merkkijonoksi Excel VBA:ssa?

Miten muunnan ympyrä-arvon "45" merkkijono-arvoksi "45" Excel VBA:ssa?

Ratkaisu

CStr(45) on kaikki mitä tarvitset (Convert String -funktio).

Kommentit (1)

Kokeile funktiota CStr()

Dim myVal as String;
Dim myNum as Integer;

myVal = "My number is:"
myVal = myVal & CStr(myNum);
Kommentit (0)

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"

Kommentit (2)