Tam Sayıya VBA Dizesi - Veri Dönüştürme için CINT İşlevini Kullanın

Tam Sayıya Excel VBA Dizesi

Dize ve Tamsayı yaygın veri türleridir, ancak genellikle veri analizimizin bir parçası olarak, dize veri türü değişkenini tamsayı veri türüne dönüştürmek isteyebiliriz ve bu, VBA'da “CINT” işlevini kullanarak mümkündür.

CINT İşlevinin Sözdizimi

"CINT", bir veri türü dönüştürme işlevi olarak kategorize edilir. Bu işlev, sağlanan ifadeyi bir Tamsayı veri türüne dönüştürür. "İfade" dediğimde, VBA'da Tamsayı veri tipi aralığında, yani -32768 ile 32767 arasında sayısal bir değer olmalıdır.

Şimdi, VBA'daki CINT işlevinin sözdizimine bakın.

  • İfade , Tamsayı Veri Türüne dönüştürülecek değeri içeren değer veya değişkendir.
Not 1: Sadece ifade değeri -32768 ile 32767 arasında olmalıdır. Aksi takdirde, "Aşırı Akış Hatası" na, yani veri tipi sınırını aşan değerin atanmasına yol açacaktır. Not 2: İfade sayısal bir değer olmalıdır. İfade dize değeri veya metin değeriyse, "Çalıştırma Süresi Hatası 13: Tür Uyuşmazlığı" na neden olur .

Bu makalede, "CINT" fonksiyonunu kullanarak dizeden tam sayıya tamsayı veri türü dönüşümünü göstereceğiz.

VBA'da CINT İşlevi Örnekleri

Örnek 1

Bir kesir sayısının Tamsayı Veri Türü'ne dönüştürülmesinin ilk örneğini gerçekleştirelim.

Kod:

Sub CINT_Example1 () Dim IntegerNumber As String Dim IntegerResult As Integer IntegerNumber = 2564.589 IntegerResult = CInt (IntegerNumber) MsgBox IntegerResult End Sub
  • "Tamsayı" değişkeni için yukarıdaki kodda, değeri "2564.589" olarak atadım.
  • Sonraki satırda, bir CINT işlevi uyguladım. Böylece sağlanan değeri en yakın tam sayıya dönüştürür.

Böylece sonucu aldık - 2565 ve verilen numara 2564.589. Ondalık değer 0,5'ten fazla olduğunda CINT işlevleri sayıyı bir sonraki tam sayıya yuvarlar. Ondalık değer 0,5 CINT işlevinden küçük veya eşit olduğunda aynı Tamsayı sayıya yuvarlar.

Bir örnek için, sayının 0,5'ten küçük olduğu aşağıdaki koda bakın.

Kod:

Sub CINT_Example1 () Dim IntegerNumber As String Dim IntegerResult As Integer IntegerNumber = 2564 - 0.5 IntegerResult = CInt (IntegerNumber) MsgBox IntegerResult End Sub

Bu, sonucu 2565 değil 2564 olarak vermelidir.

Örnek 2

Şimdi, Tamsayı veri türünün sınırından daha fazla olan sayıyı atamaya çalışacağım.

Kod:

Sub CINT_Example2 () Dim IntegerNumber As String Dim IntegerResult As Integer IntegerNumber = 51456.785 IntegerResult = CInt (IntegerNumber) MsgBox IntegerResult End Sub

Sayıyı, Tamsayı veri türü sınırının üzerinde olan “TamsayıSayı = 51456.785” olarak atadım. Şimdi kodu çalıştırmayı denersem, VBA'da bir taşma hatası atar.

Sağlanan sayı, Tamsayı veri türünden daha fazla olduğunda, "Sayı, Tamsayı Veri Türü Sınırından Daha Fazla" diyen basit mesaj kutusunu gösterelim.

Kod:

Sub CINT_Example2 () Dim IntegerNumber As String Dim IntegerResult As IntegerIntegerNumber = 51456.785 Hatada GoTo Mesaj: IntegerResult = CInt (IntegerNumber) Mesaj: Err.Number = 6 ise MsgBox IntegerNumber & "Tamsayı Veri Türü Sınırından Daha Fazla" Sub

Bu, sağlanan sayı Tamsayı veri türü aralığı dışında olduğunda aşağıdaki gibi mesajı gösterecektir.

Örnek 3

Şimdi sayısal olmayan değeri atamaya çalışacağım.

Sub CINT_Example2 () Dim IntegerNumber As String Dim IntegerResult As Integer IntegerNumber = "Merhaba" IntegerResult = CInt (IntegerNumber) MsgBox IntegerResult End Sub

Değeri sayısal olmayan "Merhaba" olarak atadım. Bu, "Tür Uyuşmazlığı Hatasına" neden olur.

Hatayı bu şekilde göstermek yerine kullanıcının önüne basit bir bilgi mesaj kutusu koyalım. Aşağıdaki kod, "Sağlanan İfade Değeri Sayısal Değil, Dolayısıyla dönüştürülemez" mesaj kutusunu koyacaktır.

Kod:

Sub CINT_Example2 () Dim IntegerNumber As String Dim IntegerResult As IntegerNumber = "Hello" On Error GoTo Message: IntegerResult = CInt (IntegerNumber) Message: Err.Number = 13 ise MsgBox IntegerNumber & ": Sağlanan İfade Değeri Sayısal Değildir , "End Sub

Bu, aşağıdaki mesaj kutusunu gösterecektir.

Hatırlanacak şeyler

  • CINT, değeri başka bir veri türünden bir tamsayı veri türüne dönüştürür.
  • Tam sayı -32768 ile 32767 arasındaki değerleri tutabilir, bu sayıların üzerindeki herhangi bir şey bir taşma hatasına neden olur.
  • Yalnızca dize veri türü, tamsayı veri türüne dönüştürülecek sayısal verileri içerir.

Önerilen Makaleler

Bu, VBA String to Integer için bir rehber olmuştur. Burada, pratik örnekler ve indirilebilir excel şablonuyla birlikte CINT işlevini kullanarak Excel VBA'da dizeden tamsayıya örneklerini tartışıyoruz. Aşağıda VBA ile ilgili bazı yararlı makaleler bulunmaktadır -

  • VBA Dizeyi Diziye Böl
  • Bugüne Kadarki VBA Dizesi
  • VBA String Karşılaştırması
  • VBA Dizeyi Değiştir

Ilginç makaleler...