VBA Uzun Veri Türü (Dim Değişkeni)

Uzun Değişken Tip

VBA Uzun veri türü çok uzun veri değerlerini (-2.147.483.648 - 2.147.483.648) depolamak için kullanılır. Yalnızca tam sayıları saklayabilir (ondalık basamak olmadan).

Bir Long değişkeni bildirmek için Dim İfadesini kullanırsınız (Boyut'un kısaltması):

1 Uzun olarak Dim lngA

Ardından, bir değişkene değer atamak için eşittir işaretini kullanmanız yeterlidir:

1 IngA = 30000

Bunu bir prosedüre koymak şöyle görünür:

12345678 Alt IngÖrnek()'uzun değişkeni bildirUzun olarak Dim lngA'uzun değişkeni doldurunIngA = 30000'mesaj kutusunu gösterMsgBox lngAAlt Bitiş

Yukarıdaki kodu çalıştırırsanız, aşağıdaki mesaj kutusu gösterilecektir.

LongLong veri türü

LongLong veri türü yalnızca Microsoft Office'in 64 bit sürümünde mevcuttur. 64 bit makinede Office'in 32 bit sürümünü çalıştırıyorsanız, bu veri türü kullanılamaz. -9,223,372,036,854,775,808 ila 9,223,372,036,854,775,807 aralığındaki sayıları destekler.

1 Uzun Uzun olarak Dim lngA

LongPtr veri türü

LongPtr, Microsoft Office'in 64 bit sürümünü desteklemek için VBA'ya tanıtıldı. 32 bit sistemde Uzun, 64 bit sistemlerde Uzun Uzun olarak kabul edilir.

1 LongPtr olarak Dim lngA

Not: LongPtr, Excel 2007 veya önceki sürümlerde kullanılamaz.

Ondalık Değerler ve Uzun Veri Tipleri

Uzun değişkenler ondalık değerleri depolayamaz. Bir ondalık sayıyı uzun süre iletirseniz, ondalık sayıyı çıkarmak için ondalık sayı yuvarlanır.

Bu nedenle, aşağıdaki prosedürü uygularsanız:

12345678 Alt LngÖrnekB()'uzun değişkeni bildirUzun olarak Dim lngA'uzun değişkeni doldurunIngA = 3524.12'mesaj kutusunu gösterMsgBox lngAAlt Bitiş

Ondalık değer aşağı yuvarlanır ve aşağıdaki mesaj döndürülür:

Ancak, aşağıdaki kod:

12345678 Alt LngÖrnekB()'uzun değişkeni bildirUzun olarak Dim lngA'uzun değişkeni doldurunIngA = 3524.12'mesaj kutusunu gösterMsgBox lngAAlt Bitiş

Aşağıdaki mesaj kutusunu döndürür (yuvarlama):

Ondalık / Çift Veri Türü

Bir ondalık basamak saklamak istiyorsanız, ondalık basamaklara izin veren bir değişken bildirmeniz gerekir. Kullanabileceğiniz 3 veri türü vardır - Tek, Çift veya Para Birimi.

1 Tek Olarak Dim sngPrice
1 Çift olarak dblPrice Dim
1 Para Birimi Olarak Dim curPrice

Tek veri türü, ondalık noktayı double ve para birimi veri türünden biraz farklı bir şekilde yuvarlar, bu nedenle doğruluk için çift ila tek kullanılması tercih edilir. Bir Double en fazla 12 ondalık basamağa sahip olabilirken Para Birimi ve Single'ın her ikisi de en fazla 4 ondalık basamağa sahip olabilir.

Modül veya Global Düzeyde Uzun Değişken Bildirme

Önceki örneklerde, Long değişkenini bir prosedür içinde tanımlamıştık. Bir prosedürle bildirilen değişkenler yalnızca o prosedür içinde kullanılabilir.

Bunun yerine, modül veya global düzeyde Uzun değişkenler bildirebilirsiniz.

Modül Seviyesi

Modül seviyesi değişkenler, kod modüllerinin en üstünde şu şekilde bildirilir: loş Beyan.

Bu değişkenler, o kod modülündeki herhangi bir prosedürle kullanılabilir.

Küresel düzey

Küresel düzey değişkenler ayrıca kod modüllerinin en üstünde bildirilir. Ancak, kullanmak yerine loş ifadesini kullanın Halk uzun değişkenin VBA Projeniz boyunca kullanılmaya uygun olduğunu belirten ifade.

1 Kamu lngA olarak Uzun

Uzun değişkeni bir modül düzeyinde bildirir ve ardından farklı bir modülde kullanmayı denerseniz, bir hata oluşur.

Ancak, uzun değişkeni bildirmek için Public anahtar sözcüğünü kullanmış olsaydınız, hata oluşmaz ve prosedür mükemmel şekilde çalışırdı.

Uzun Saklananları Dize Olarak Biçimlendir

Uzun bir veri türünü bir dizeye biçimlendirmek istediğiniz bir zaman olabilir - örneğin bir tarih veya bir para birimi simgesi görüntülemek isteyebilirsiniz.

Bunu başarmak için Biçim işlevini kullanırsınız.

Aşağıdaki prosedür:

1234567891011 Alt TestLongToString()'dize değişkenini bildirDize olarak strDate'i karart'uzunluğu bildir ve değeri doldurDim lngDate kadar uzunIngTarihi = 44055'uzun olanı tarih olarak biçimlendirilmiş bir dizgeye dönüştürünstrDate = Format(lngDate, "gg mmmm yyyy")'sonucu görmekDebug.Print strDateAlt Bitiş

aşağıdaki sonucu döndürürdü:

ve aşağıdaki prosedür

1234567891011 Alt TestLongtoCurrencyString()'dize değişkenini bildirDim strMoney As String'uzunluğu bildir ve değeri doldurDim lngValue As LonglngDeğeri = 44055'uzunluğu para birimi sembolü olan bir dizgeye dönüştürünstrMoney = Format(lngValue, "$#,##0")'sonucu görmekMsgBox strMoneyAlt Bitiş

bu sonucu döndürürdü:

wave wave wave wave wave