Bu öğretici, bir ifadeyi uzun tamsayı veri türüne dönüştürmek için CLng VBA işlevinin nasıl kullanılacağını gösterecektir.
CLng Fonksiyonu
VBA CLng İfadeyi Uzun'a Dönüştür
VBA CLng işlevi, ifadeleri VBA kodu içindeki uzun veri türüne dönüştürmek için kullanılabilir.
123456 | Alt CLngÖrnek_1()MsgBox CLng(12.34) 'Sonuç: 12MsgBox CLng(12.345) 'Sonuç: 12MsgBox CLng(-124) 'Sonuç: -124MsgBox CLng(-12.34) 'Sonuç: -12Alt Bitiş |
VBA CLng Yuvarlama
VBA CLng işlevi, bir sayı türünün veya sayı benzeri bir ifadenin ondalık kısmını yuvarlar. Ancak, her durumda doğru yuvarlanmaz. Ondalık kısım 0,5 olduğunda, VBA CLng işlevi en yakın çift tamsayıyı döndürür.
1234567891011 | Alt CLngÖrnek_2()MsgBox CLng(0.34) 'Sonuç: 0MsgBox CLng(0.99) 'Sonuç: 1MsgBox CLng(-124.95) 'Sonuç: -125MsgBox CLng(1.5) 'Sonuç: 2MsgBox CLng(2.5) 'Sonuç: 2Alt Bitiş |
VBA CLng işlevinin davranışını beklenen şekilde değiştirmek için, beklenen ondalık değerimize nispeten küçük bir ondalık sayı ekleyebiliriz.
1234567891011 | Alt CLngExample_3()MsgBox CLng(2.5)'Sonuç: 2MsgBox CLng(2,5 + 0,001)'Sonuç: 3MsgBox CLng(14.5)'Sonuç: 14MsgBox CLng(14,5 + 0,001)'Sonuç: 15Alt Bitiş |
VBA Programlama | Code Generator sizin için çalışıyor!
VBA CLng Dizeleri Uzunlara Dönüştürme
VBA CLng işlevi, dizedeki karakterlerin sayı olarak bir anlamı varsa, dizeleri uzunlara dönüştürmek için kullanılabilir.
123456789101112131415161718 | Alt CLngÖrnek_4()Dize Olarak Dim StrExStEx = "112"MsgBox CLng(StrEx)'Sonuç: 112StrEx = "112.3"MsgBox CLng(StrEx)'Sonuç: 112 112.3 yuvarlanırStrEx = "11,2"MsgBox CLng(StrEx)'Sonuç: 112 , yoksayıldıStrEx = "112$"MsgBox CLng(StrEx)'Sonuç: 112 $ yok sayılırAlt Bitiş |
VBA CLng Çalışma Zamanı Hatası 13 Tip Uyuşmazlığı
Sayısal olmayan karakterler veya sayısal bağlamda anlamı olmayan karakterler içeren dizelerle VBA CLng işlevinin kullanılması, Çalışma Zamanı hatası '13': Tür uyuşmazlığı ile sonuçlanır.
1234567 | Alt CLngÖrnek_5()'Aşağıdaki kod bir HATA mesajıyla sonuçlanacak'CLng sayısal olmayan karakterleri işleyemezDize Olarak Dim StrExStrEx = "Ab13"MsgBox CLng(StrEx)Alt Bitiş |
VBA CLng Çalışma Zamanı Hatası 6 Taşma
Beklenen tamsayıdan daha küçük veya daha büyük bir değerle sonuçlanan dizelerle VBA CLng işlevinin kullanılması, Çalışma Zamanı hatası '6': Taşma ile sonuçlanır. Excel'deki tamsayı veri türünün beklenen değeri -2.147.483.648 ila 2.147.483.647 arasındadır.
1234567 | Alt CLngExample_6()'Aşağıdaki kod bir HATA mesajıyla sonuçlanacak'CLng sayısal olmayan karakterleri işleyemezDize Olarak Dim StrExStrEx = "2147483648"MsgBox CLng(StrEx)Alt Bitiş |
VBA Kodu Örnekleri Aramaktan Bıktınız mı? AutoMacro'yu deneyin!
VBA CLng Bölgesel Ayarları
VBA CLng işlevi, dizeleri virgül veya nokta ile dönüştüren farklı davranışlara sahiptir. Ondalık ayırıcı ve rakam ayırıcı için işletim sisteminin Bölgesel Ayarlarını kullanır.
12345678910111213141516 | Alt CLngÖrnek_7()Dize Olarak Dim StrExStrEx = "1,9"MsgBox CLng(StrEx)'Bölgesel ayarlarda gruplama ayırıcısı varsa, o zaman'Sonuç: 19'Bölgesel ayarlarda ondalık ayırıcı olarak varsa'Sonuç: 2 (2 çünkü 1,9 yuvarlanır)StrEx = "1.9"MsgBox CLng(StrEx)'Bölgesel ayarlar varsa . o zaman gruplandırma ayırıcı olarak'Sonuç: 19'Bölgesel ayarlar varsa . ondalık ayırıcı olarak'Sonuç: 2 (2 çünkü 1,9 yuvarlanır)Alt Bitiş |
VBA Programlama | Code Generator sizin için çalışıyor!
VBA CLng Booleanları Uzunlara Dönüştürme
VBA CLng işlevi, boole değişkenlerini uzunlara dönüştürebilir. Değerlendirilen ifade doğruysa, sonuç uzunluğu -1 olur ve değerlendirilen ifade yanlışsa sonuç uzunluğu 0 olur.
1234567891011121314 | Alt CLngExample_8()Boole Olarak Dim BoolExBoolEx = DoğruMsgBox CLng(BoolEx)'Sonuç: -1MsgBox CLng(2 = 2)'Sonuç: -1BoolEx = YanlışMsgBox CLng(BoolEx)'Sonuç: 0MsgBox CLng(1 = 2)'Sonuç: 0Alt Bitiş |
VBA CLng Tarihleri Uzunlara Dönüştürme
VBA CLng işlevi, bir tarih değişkenini uzun bir değişkene dönüştürebilir. Döndürülen değer, Excel tarafından yuvarlanmış tarih depolaması için kullanılan dahili sayıdır. Bu sayı VBA için beklenen uzun sınırların dışındaysa, Çalışma Zamanı hatası '6': Taşma alırız.
123456789101112 | Alt CLngExample_9()Dim DateEx As DateDateEx = #2/3/1940#MsgBox CLng(DateEx)'Sonuç: 14644DateEx = #8/7/1964#MsgBox CLng(DateEx)'Sonuç: 23596DateEx = #3/7/1934 11:32:04 AM#MsgBox CLng(DateEx)'Sonuç: 12485Alt Bitiş |