Excel VBA'da tamsayı değerini "45" dize değerine "45" nasıl dönüştürebilirim?
Çoğu zaman "convert" yapmanız gerekmez; VBA, CStr
gibi dönüştürücüleri kullanmadan sizin için güvenli örtük tür dönüştürme yapacaktır.
Aşağıdaki kod herhangi bir sorun olmadan çalışır, çünkü değişken String türündedir ve **örtülü tür dönüşümü sizin için otomatik olarak yapılır!
Dim myVal As String
Dim myNum As Integer
myVal = "My number is: "
myVal = myVal & myNum
Sonuç:
"Numaram: 0"
Bu kadar süslü olmanıza bile gerek yok, bu da işe yarar:
Dim myString as String
myString = 77
"77"
Dönüştürmeniz gereken tek zaman, değişken Türünün belirsiz olduğu durumlardır (örneğin, Tür Varyantı veya bir Hücre'nin `Değeri' (ki bu _Varyanttır)).
O zaman bile, başka bir String değişkeni veya sabiti ile birleştiriyorsanız CStr
fonksiyonunu kullanmak zorunda kalmazsınız. Bunun gibi:
Sheet1.Range("A1").Value = "My favorite number is " & 7
"En sevdiğim sayı 7"
Bu nedenle, gerçekten nadir_ olan tek durum, bir tamsayı değerini bir varyant veya Hücre değerinde saklamak istediğinizde, _aynı zamanda başka bir dizeyle bileşik olmadığında (ki bu oldukça nadir bir yan durumdur, ekleyebilirim):
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"