EXCEL VBA'DA CLNG FONKSİYONU

 

EXCEL VBA'DA CLNG TANIMI:

“VBA CLng işlevi” bir veri türünün ifadelerini/değerlerini  Long  tamsayıya dönüştürür. İşlev Excel'e yerleşiktir ve bir VBA işlevi olarak da kullanılabilir. Long veri türü -2.147.483.648 ile 2.147.483.647 arasındaki değerleri depolayabilir.


Excel'deki VBA CLng işlevini anlamak için lütfen aşağıdaki örneğe bakın. İlk olarak, bir String veri türünü Long'a dönüştürelim. Her iki veri türü de sayısal değerleri destekler. VBA Düzenleyicisini açın ve VBA'daki CLng işlevini kullanarak String veri türünü Long'a dönüştürmek için aşağıdaki kodu yazın. Kodu çalıştırın ve sonucu 1050 olarak elde edin (“,” yok sayılır ve Long veri türüne dönüştürülür).


KOD:

Sub CLng_Example()
Dim X As String
Dim LongX As Long
X = “1.050”
LongX = CLng(X)
MsgBox LongX
End Sub

VBA Clng Fonksiyonu

 

ÖNEMLİ NOKTALAR

  • Excel VBA CLng işlevi VBA İşlevleri kategorisine girer. CLng kısaltması "Uzun'a Dönüştür" anlamına gelir ve bir değişkeni (genellikle bir Dize) Uzun veri türüne dönüştürür.
  • CLng fonksiyonunun argümanı bir ifadedir (Uzun veri türüne dönüştürülecek).
  • Dizenin sayısal bir değer içerdiğinden emin olun (örneğin, "1004"); bir dizeye sayısal olmayan bir metin değeri atarsak, daha sonra onu uzun değere dönüştürmeye çalışırsak, "Tür Uyuşmazlığı" hatası görüntülenir.
  • Benzer şekilde, CLng fonksiyonunun aralığının dışında bir değer atarsak, CLng bunu uzun veri türüne dönüştüremeyecek ve “Taşma hatası” gösterecektir.

VBA CLng Fonksiyon Sözdizimi

CLng fonksiyonunun söz dizimi aşağıdaki gibidir:

Vba clng fonksiyon sözdizimi

' İfade (Expression)'  herhangi bir VBA veri türünü Uzun veri türüne dönüştürmek için bir değer veya değişken olabilir.


VBA'da CLng Fonksiyonu Nasıl Kullanılır?

VBA CLng fonksiyonunu kullanmak için bir örnek kullanarak şu basit adımları izleyeceğiz.

Bir dize değeri olarak saklanan ondalık bir sayıyı ele alalım. Dizenin değeri bir ondalık sayıysa, örneğin 0,5 ise, ondalık kısım VBA CLng işlevi aracılığıyla yuvarlanır. Ardından sonuç en yakın çift tam sayı olan 1'i gösterecektir. Böyle bir örneğe bakalım.

Adım 1 : Excel'de VBA'yı açın ve " Ekle " sekmesine tıklayın. Aşağıdaki resimde gösterildiği gibi yeni bir modül açmak için " Modül "ü seçin.

Vba clng fonksiyonu - kullanımı - Adım 1

Adım 2 : Alt prosedürden başlayarak kodu yazın ve “String” ve “Long” olarak iki değişken bildirin. Dize değişkenine sayısal bir değer atanacak ve uzun veri türüne dönüştürülmesi gerekir.

Vba clng fonksiyonu - kullanımı - Adım 2

Adım 3 : Şimdi aşağıda gösterildiği gibi string değişkenine bir değer atayın.

Vba clng fonksiyonu - kullanımı - Adım 3

Adım 4 : String’i Long’a dönüştürmek için VBA CLng Fonksiyonunu ve sonucu mesaj kutusunda görüntülemek için “MsgBox”ı kullanın.

Vba clng fonksiyonu - kullanımı - Adım 4

Kod:

Sub CLng_Example()
Dim Num As String
Dim LongNum As Long
Num = “999.99”
LongNum = CLng(Num)
MsgBox LongNum
End Sub

Adım 5 : Yukarıdaki kodu F5 veya VBA Şeridinde gösterilen Çalıştır düğmesini kullanarak çalıştırın; sonucu aşağıda gösterildiği gibi mesaj kutusunda görebiliriz:

Vba clng fonksiyonu - kullanımı - Adım 5

Burada VBA CLng fonksiyonu string değişken değerini yuvarlatılmış Long sayıya dönüştürmüştür.

Örnekler

Excel'de VBA CLng fonksiyonunun kullanımını gördüğümüze göre, şimdi de bazı örnekler kullanarak Excel'de VBA CLng fonksiyonunun işleyişini anlayalım.

Örnek 1

VBA CLng fonksiyonunu kullanarak iki dize değişkeninin Long değişkenlere dönüştürülmesini istediğimiz bir örneğe bakalım.

Adım 1: Bir alt prosedürle başlayın ve String türünde iki değişken ve Long veri türünde iki değişken tanımlayın.

Vba clng fonksiyonu - Örnek 1 - Adım 1

Adım 2: Şimdi X ve Y'ye sayılar içeren dize değerleri atayın.

Vba clng fonksiyonu - Örnek 1 - Adım 2

Adım 3 : Şimdi, iki String veri türünü (X ve Y) Long veri türüne dönüştürmek için CLng fonksiyonunu kullanacağız.

Vba clng fonksiyonu - Örnek 1 - Adım 3

Adım 4: Sonucu bir mesaj kutusunda görmek için MsgBox işlevini kullanın. Burada, sayının Long'a dönüştürüldüğünü kanıtlamak için Vartype işlevini kullanıyoruz. Değişkenin veri türünü belirten bir tam sayı yazdırır. Long veri türü olduğunu belirten bir 3 almalıyız.

Vba clng fonksiyonu - Örnek 1 - Adım 4

Adım 5 : Kodu çalıştırın ve aşağıda gösterildiği gibi Mesaj kutusundaki her iki dize değeri için sonucu görün:

Vba clng fonksiyonu - Örnek 1 - Adım 5

Örnek 2

Bu örnekte, VBA CLng fonksiyonunun hatası olan “VBA Run-time error-6, Overflow”a bakacağız. Bu hata, VBA CLng fonksiyonunun sayı aralığının dışında bir sayısal değer atadığımızda oluşur.

Adım 1: Bir alt prosedürle başlayın ve String ve Long adında iki değişken tanımlayın.

Vba clng fonksiyonu - Örnek 2

Adım 2 : Excel VBA CLng dizesine sayısal değeri (2.147.483.649) atayın. Değer CLng işlev aralığının dışındadır.

Vba clng fonksiyonu - Örnek 2 - Adım 2

Adım 3: Şimdi, onu Long'a dönüştürmek için CLng fonksiyonunu kullanacağız. Ancak, atadığımız değer VBA CLng fonksiyonunun aralığının dışında olduğu için bir hata almalıyız.

Vba clng fonksiyonu - Örnek 2 - Adım 3

Adım 4 : Sonucu mesaj kutusunda görmek için MsgBox'ı atayın.

Vba clng fonksiyonu - Örnek 2 - Adım 4.jpg

Adım 5: Kodu çalıştırın ve mesaj kutusunda “Run-time error-6, Overflow” ifadesini gözlemleyin.

Vba clng fonksiyonu - Örnek 2 - Adım 5

Örnek 3

CLng kullanırken oluşan bir hatanın başka bir örneğine bakalım. Burada “ Run-time-6 Type Mismatch ” hatasına bakacağız. Bu hata, bir VBA dize veri türüne sayısal olmayan bir değer atadığımızda oluşur. Bu nedenle, CLng işlevi bir dizeyi Long veri türüne dönüştüremez ve sonuçta bir hata görüntüler.

Adım 1: Alt prosedürle başlayın ve veri türleri olan String ve Long değişkenlerini tanımlayın.

Örnek 3.jpg

Adım 2: Şimdi sayısal olmayan değeri (“Sayı”) dize değişkenine atayın.

Örnek 3 - Adım 2

Adım 3: Şimdi String'i Long veri türüne dönüştürecek olan CLng fonksiyonunu kullanacağız

Örnek 3 - Adım 3

Adım 4: Sonucu görmek için MsgBox'ı atayın.

Örnek 3 - Adım 4

Adım 5: Kodu çalıştırdığımızda, String veri türüne metin değeri atadığımız için iletişim kutusunda “ Run-time error-13, Type Mismatch ” hatasını alıyoruz.

Örnek 3 - Adım 5

Sub CLng_Example()
Dim Num As String
Dim LongNum As Long
Num = “Sayı”
LongNum = CLng(Num)
MsgBox LongNum
End Sub

Değişken değerine "$" gibi özel bir karakter atadığımızda ne olacağını görelim. Aşağıdaki koda bakın.

Sub CLng_Example()
Dim Num As String
Dim LongNum As Long
Num = “$150”
LongNum = CLng(Num)
MsgBox LongNum
End Sub

Adım 6: Yukarıdaki kodu çalıştırın. Şaşırtıcı bir şekilde, 150 sonucunu elde ederiz. CLng'nin $ işaretini görmezden geldiğini ve String'in geri kalanını Long'a dönüştürdüğünü açıkça gösterir.

Not: Para birimi simgesi yalnızca sisteminizin konum ayarlarına uygunsa yok sayılır. Örneğin, konum ayarlarınız olarak Yen simgesini US ile birlikte kullanmanız bir hata verecektir.

Örnek 3 - Adım 6

Dikkat Edilmesi Gereken Önemli Noktalar

  • CLng (Long'a Dönüştür) fonksiyonu verilen veri tipini Long'a dönüştürür.
  • VBA CLng fonksiyonunu kullanırken depolayabileceği aralığa sadık kalmamız gerekiyor; 2.147.483.648 ile 2.147.483.647 aralığının dışında bir değer atarsak VBA CLng “Run-time error,6, Overflow error” hatasıyla karşılaşırız.
  • Benzer şekilde, sayısal bir değişkene sayısal olmayan bir değer atarsak, CLng VBA değişken türünü Uzun veri türüne dönüştüremez ve “ Çalışma zamanı hatası.-13, Tür Uyuşmazlığı” gösterir.  CLng işlevi, ondalık ve rakam ayırıcıları için işletim sisteminin bölgesel ayarlarını kullanır.
  • VBA CLng date – CLng fonksiyonu bir Date  veri türünü  uzun veri türüne dönüştürebilir   .

Örneğin:

Kod:

Sub CLngEx()
Dim DateEx As Date
DateEx = #3/3/2023#
MsgBox CLng(DateEx)
End Sub

Imp - tarih depolama - kod

Sonuç, Excel'in tarih depolamasında kullandığı kodlanmış dahili sayıdır.

Imp - tarih depolama



Yorum Gönder

DT KARİYER KPSS Dünyasına Hoş Geldiniz
Sevgili dostum nasıl yardımcı olabilirim?
Bu alana yazınız...