VBA Uzun (Örnek) | Excel VBA'da Uzun Veri Türü İçin Adım Adım Kılavuz

VBA'da Uzun Veri Türü nedir?

Uzun, VBA'da sayısal değerleri depolamak için kullanılan bir veri türüdür , tamsayının sayısal değerleri de tuttuğunu biliyoruz ancak Uzun veri saklama aralığı, uzun veri türü durumunda da çok büyük olduğundan tamsayılardan farklıdır. veri türü ondalık değerleri de tutabiliriz, bu dahili bir veri türüdür.

Adından da anlaşılacağı gibi "uzun" , büyük bir şeyin değerini taşımalıdır. "Uzun", VBA Excel'de sayısal bir veri türüdür.

Excel VBA'daki uzun veri türü, pozitif sayılar için 0'dan 2'ye, 147, 483, 647'ye kadar olan değerleri ve negatif sayı için 0'dan -2, 147, 483, 648'e kadar tutabilir.

VBA Uzun veri türü, bilgisayarınızda 4 bayt bellek deposu gerektirir; bu, çift tamsayı veri türü değişken belleği (2 bayt) ve çift veri türü değişken belleğinin yarısıdır (8 bayt)

Kısa kariyerimde bir VBA Uzun veri türü sınırını tam olarak kullanmak istediğim bir senaryo görmedim. Ama daha iyi anlamak için size bazı örnekler göstereceğim.

VBA Uzun Veri Türü Örnekleri

Aşağıda excel VBA Long veri türü örnekleri verilmiştir.

Bu VBA Uzun Veri Türü Excel Şablonunu buradan indirebilirsiniz - VBA Uzun Veri Türü Excel Şablonu

VBA Uzun Örneği # 1

Değişken veri türünü "Uzun" olarak bildirir bildirmez, -2, 147, 483, 648'den 2, 147, 483, 648'e kadar değerler atayabilirsiniz.

Örneğin, değişkeni uzun veri türü olarak bildirin.

Kod:

 Sub Long_Example1 () Dim k As Long End Sub 

Değeri çalışma sayfasının toplam satır sayısı olarak atayalım.

Excel çalışma sayfasındaki toplam sayım satırlarını almak için kod “Satırlar. Miktar"

Kod:

 Alt Uzun_Örnek1 () Dim k As Long k = Satırlar. Sayı Son Alt 

Şimdi mesaj kutusunda değeri gösterin.

Kod:

 Sub Long_Example1 () Dim k As Long k = Rows.Count MsgBox k End Sub 

Bu kodu çalıştırın ve çalışma sayfasındaki toplam satır sayısının ne olduğunu görün.

Çalışma sayfasında 1 milyondan fazla satırımız olduğunu söylüyor.

Şimdi daha iyi anlamak için, veri türünü LONG'dan INTEGER'a değiştireceğim.

Kod:

 Sub Long_Example1 () Dim k As Integer k = Rows.Count MsgBox k End Sub 

VBA kodunu çalıştırırsam hata mesajını "Taşma" olarak alacağım.

VBA'da bu hatayı almamızın nedeni, "Tamsayı" veri türü yalnızca -31768 ile 32767 arasındaki değerleri tutabilir. Bu durumda "Satırlar. Count "," tamsayı "değişkeninin sınırından daha fazla olan sayıyı döndürür.

Yalnızca 32767 tutabilen değişkene 1 milyonun üzerinde değer atanması burada taşma hatasına neden olur.

VBA Uzun Örneği # 2

Uzun Değişkeni Kullanarak Son Satırı Bulun

Çalışma sayfasının son kullanılan satırını bulmak kodlamanın en önemlisidir. Çalışma sayfasının son kullanılan satırını bulmak için değişkenin bildirilmesi gerekir. Değişkeni bildirirken ve bir veri türü atarken biraz sağduyu gerektirir.

Aşağıdaki resimde gösterildiği gibi 25000 satırda veri sonunuz olduğunu varsayalım.

Şimdi en son kullanılan satır numarasının 25000 olduğunu biliyorum, bunun için "LONG" veri türüne ihtiyacımız yok çünkü "INTEGER" veri türü bana son satırı verebilir.

Bilgileriniz için aşağıdaki koda bakın.

Kod:

 Sub Long_Example1 () Dim k As Integer k = Hücreler (Rows.Count, 1) .End (xlUp) .Row MsgBox k End Sub 

Bu kodu çalıştırırsam, şu anda üzerinde çalıştığım çalışma sayfasının son kullanılan satır numarasını alacağım.

Bir kodlayıcı olarak, gelecekte sahip olacağınız verilerin boyutunu bilmek önemlidir. Çünkü şu anda veri 25000'inci satırda bitiyor olabilir ancak veri “Tamsayı” sınırını yani 32767'yi aşarsa taşma hatasına neden olur.

Örneğin veriyi 32768'inci satıra çıkaracağım.

Şimdi aynı kodu tekrar çalıştırırsam değeri almayacağım, bunun yerine aşağıdaki gibi hatayı alacağım.

Sınırı "Tamsayı" değerinin sınırının sadece 1 üzerine çıkardığımı unutmayın, bu yüzden bir Taşma hatası aldım.

Bu nedenle, değişkene bir veri türü atamadan önce verilerinizin boyutunu bilmek önemlidir. Gelecekte veri boyutunuzu düşünmeden değişkeni "UZUN" olarak belirtmek her zaman daha iyi bir seçenektir.

Excel VBA Uzun Değişkenine Alternatifler

Değeri uzun bir değişkenin sınırından daha fazla tutmak istiyorsak ne olduğunu zaten düşünüyor olmalısınız. Bunun için farklı veri türleri, yani VBA "String" veya "Variant" kullanmamız gerekir.

Unutmayın, 2147483647 sayısını geçtiği anda LONG veri tipine sahip VBA'da taşma hatası alacağız. Bu sayıdan daha fazlasını depolamak için "String" veya "Variant" veri türü kullanmamız gerekir.

Dize için

Kod:

 Sub Long_Example2 () Dim k As String k = 2147483648 MsgBox k End Sub 

Varyant için

Kod:

 Alt Uzun_Örnek2 () Değişken Olarak Dim k = 2147483648 MsgBox k End Sub 

Yukarıdaki kodları çalıştırdığımızda belirtilen sayıyı gösterecektir.