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

Varyant Değişken Türü

Bir Değişken Değişkeni, herhangi bir zamandaki verileri (dize, tamsayılar, ondalık sayılar, nesneler vb.) tutabilir. Bir değişken türü bildirmezseniz, değişkeniniz değişken olarak kabul edilecektir.

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

1 Varyant olarak değişkenAdı Dim
1 Varyant olarak karartma

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

1 varName = "John"
1 rng = Sayfalar(1).Aralık("A1")

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

12345678910 Alt strÖrnek()'varyantları bildirVaryant Olarak Dim strNameVaryant Olarak Karartma'değişkenleri doldurstrName = "Fred Smith"Set rng = Sheets(1).Range("A1")'sayfayı doldurrng.Value = strNameAlt Bitiş

Yukarıdaki kodu çalıştırırsanız, Sayfa 1'deki A1 hücresi “Fred Smith” ile doldurulacaktır.

Yukarıda belirtilen isimlerle, şu sonuca varabiliriz: varName metin içerecek ve nesne sayfası bir çalışma sayfası nesnesi içerir. Ama aslında, herhangi bir veri türü değişkene yönlendirilebilir.

Yukarıda belirtilen değişkenleri aşağıdaki gibi doldurabilirsiniz ve herhangi bir hata oluşmaz.

1 değişkenAdı = 6
1 nesne Sayfası - "Fred"

Varyant değişkenleri kullanmak olağandışıdır ve iyi uygulama olarak kabul edilmez. Ancak bazı durumlarda Varyant değişkenleri yararlıdır.

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

Önceki örnekte, bir prosedür içinde Variant değişkenini bildirdiniz. Bir prosedürle bildirilen değişkenler yalnızca o prosedür içinde kullanılabilir.

Bunun yerine, Varyant değişkenlerini modül veya global düzeyde 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ırsınız Halk dize değişkeninin VBA Projeniz boyunca kullanılmaya uygun olduğunu belirten ifade.

1 Varyant olarak Public strName

Değişken değişkenini bir modül düzeyinde bildirirseniz ve farklı bir modülde kullanırsanız, bir hata oluşur.

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

Excel'i doldurmak için bir Varyant kullanma

Aşağıdaki prosedürü göz önünde bulundurun:

12345678910111213141516171819 Alt TestDeğişkeni'ürün adını tutacak bir dize bildirinDize olarak strProduct Dim'ürün miktarını tutmak için bir tamsayı bildiriniQty'yi tamsayı olarak azalt'ürün fiyatını ve toplam fiyatı tutmak için iki katı beyanÇift olarak dblPrice DimÇift olarak dblTotal Dim'değişkenleri doldurstrProduct = "Çok Amaçlı Un"iQty = 3dblPrice = "5.00$"dblToplam = "15,00$"'Excel sayfasını doldurunAralık("A1") = strProductAralık ("A2") = iQtyAralık("A3") = dblFiyatAralık("A4") = dblToplamAlt Bitiş

Bu kodu çalıştırdığımızda aşağıdaki hata oluşuyor.

Hata Ayıkla'yı tıklayın

Değişken olarak bildirildiği için değişkene dolar işareti koyamazsınız. Çift, ve bu nedenle dize değerlerini depolayamaz.

Bildirmek dblFiyat ve dblToplam Varyantlar olarak, bu da bir veri türüyle sınırlı olmadığınız anlamına gelir.

1 Varyant olarak Dim dblPrice
1 Varyant olarak Dim dblTotal

Kodu yeniden çalıştırın ve veriler olması gerektiği gibi Excel sayfasında görünecektir.

A4 ve A5'e girilen verilerin daha sonra Excel tarafından otomatik olarak sayılara dönüştürüldüğünü unutmayın.

Dinamik Dizi Bildirmek

Varyant değişkenleri, çalışma zamanında dizinin boyutunun değişmesine izin verdikleri için dinamik bir dizi bildirirken de kullanışlıdır.

BirlikteVaryant Dizisi, dizi boyutunu tanımlamanız gerekmez. Boyut otomatik olarak ayarlanacaktır.

123456789 Alt VariantArray()Dim arrList() Varyant Olarak'Değerleri TanımlaarrList= Dizi(1, 2, 3, 4)'Değişim değerleriarrList= Dizi(1,2,3,4,5,6)'Çıkış Konumu 4MsgBox arrVar(4)Alt Bitiş

Arkadaşlarınızla sayfasını paylaşan sitenin gelişimine yardımcı olacak

wave wave wave wave wave