VBA Dize Dizisi - Excel VBA'da Dize Dizisi Nasıl Bildirilir ve Başlatılır?

İçindekiler

Excel VBA Dize Dizisi

VBA'da, bir String dizisi, tek bir değişkenle birden fazla dize değerini tutabilen bir dizi değişkeninden başka bir şey değildir.

Örneğin, aşağıdaki VBA koduna bakın.

Kod:

Sub String_Array_Example () Dim CityList (1 ila 5) Değişken Olarak CityList (1) = "Bangalore" CityList (2) = "Mumbai" CityList (3) = "Kolkata" CityList (4) = "Haydarabad" CityList (5) = "Orissa" MsgBox CityList (1) & "," & CityList (2) & "," & CityList (3) & "," & CityList (4) & "," & CityList (5) End Sub

Yukarıdaki kodda, dizi değişkeni olarak tanımladım ve bir dizinin uzunluğunu 1'den 5'e kadar atadım.

Dim CityList (1-5) Değişken Olarak

Bu dizi değişkeni için, parantez içinde her bir dizi sayısından bahseden 5 şehir adı verdim.

CityList (1) = "Bangalore" CityList (2) = "Mumbai" CityList (3) = "Kolkata" CityList (4) = "Haydarabad" CityList (5) = "Orissa"

Sonra, bu şehir isimlerini mesaj kutusuna göstermek için bir kod yazdım.

MsgBox CityList (1) & "," & CityList (2) & "," & CityList (3) & "," & CityList (4) & "," & CityList (5)

Bu kodu çalıştırdığımda, tüm şehir adlarını tek bir mesaj kutusunda gösteren bir mesaj kutusu alacağız.

Hepimiz bunun, her şehir için ayrı değişkenler bildirme görevini ortadan kaldırarak programımızdan çok fazla zaman kazandırdığını biliyoruz. Bununla birlikte, öğrenmeniz gereken bir şey daha, dizge değerleri için yazdığımız satırın kodunu yine de azaltabiliriz. VBA string dizileri için nasıl kod yazdığımıza bakalım.

Excel VBA'da Dize Dizisi Örnekleri

Aşağıda bir excel VBA dize dizisi örnekleri verilmiştir.

Örnek 1

Yukarıdaki kodda gördüğümüz gibi, belirlenen dizi boyutuna göre değişkende birden fazla değer saklayabileceğimizi öğrendik.

Şimdi yapmamız gereken, dizi uzunluğuna önceden karar vermemektir.

Kod:

Alt String_Array_Example1 () Dim CityList () Variant End Sub

Yukarıda parantez içinde görebileceğiniz gibi, herhangi bir uzunluk yazmadım. Şimdi bu değişken için VBA ARRAY fonksiyonunu kullanarak değer ekleyelim.

Dizi içinde, değerleri her biri virgülle (,) ayrılmış olarak çift tırnak içine alın.

Kod:

Alt String_Array_Example () Dim CityList () As Variant CityList = Array ("Bangalore", "Mumbai", "Kolkata", "Hyderabad", "Orissa") End Sub

Şimdi şehir adlarının sonucunu VBA'daki mesaj kutusunda göstermek için eski kodu koruyun.

Kod:

Alt String_Array_Example1 () Dim CityList () As Variant CityList = Array ("Bangalore", "Mumbai", "Kolkata", "Haydarabad", "Orissa") MsgBox CityList (0) & "," & CityList (1) & " , "& CityList (2) &", "& CityList (3) &", "& CityList (4) End Sub

Yukarıdaki kodda yaptığım bir değişiklik, bir dizi değişkeninin alt sınırına ve üst sınırına karar vermediğimizden ve ARRAY fonksiyon dizi sayısının 1'den değil 0'dan başlayacağını kullandığımız içindir.

Dolayısıyla CityList (0), ClityList (1), CityList (2), CityList (3) ve CityList (4) olarak değerlerden bahsetmemizin nedeni budur .

Şimdi kodu excel kısayol tuşu F5 ile veya manuel olarak çalıştırın. Önceki koddan aldığımızla aynı sonucu alıyoruz.

Örnek 2

LBOUND ve UBOUND İşlevlerine Sahip VBA String Dizisi

Tüm şehir listelerini tek bir mesaj kutusunda göstermek istemiyorsanız, döngüler eklemeniz, döngüler için bir değişken daha tanımlamanız gerekir.

Şimdi FOR NEXT döngüsünü dahil edersek, kodu kaç kez çalıştırmamız gerektiğinden emin değiliz. Bu durumda 5 kere karar verebiliriz ama bu soruna yaklaşmanın doğru yolu değildir. Peki, otomatik olarak daha düşük ve daha yüksek seviyeli dizi uzunluğu tanımlayıcı fikrine ne dersiniz ???

FOR NEXT döngüsünü açtığımızda, duruma bağlı olarak genellikle döngü uzunluğunu 1 ila 5 veya 1 ila 10 olarak kararlaştırırız. Sayıları manuel olarak girmek yerine, alt değere ve üst değere otomatik olarak karar vermek için LBOUND ve UBOUND işlevini kullanalım.

LBound ve Ubound için bir dizi adı, yani CityList sağladım. VBA LBound, dizi değişkeninin alt değerini tanımlar ve VBA UBound işlevi, dizi değişkeninin üst değerini tanımlar.

Şimdi seri numarasını girmek yerine mesaj kutusunda değeri gösterin, "k" döngü değişkeninin dizi değerini otomatik olarak almasına izin verin.

Kod:

Sub String_Array_Example1 () Dim CityList () As Variant Dim k As Integer CityList = Array ("Bangalore", "Mumbai", "Kolkata", "Hyderabad", "Orissa") k = LBound (CityList) To UBound (CityList) MsgBox CityList (k) Next k End Sub

Şimdi mesaj kutusu her şehir adını ayrı ayrı gösterecektir.

Örnek 3

Bölünmüş İşlevli VBA String Dizisi

Şimdi aşağıdaki gibi şehir adlarınız olduğunu varsayalım.

Bangalore; Mumbai; Kolkata; Hydrabad; Orissa

In this case, all the cities are combined together with the colon separating each city. In such cases, we need to use the SPLIT function to separate each city.

For Expression, supply the city list.

Code:

Sub String_Array_Example2() Dim CityList() As String Dim k As Integer CityList = Split("Bangalore;Mumbai;Kolkata;Hydrabad;Orissa", For k = LBound(CityList) To UBound(CityList) MsgBox CityList(k) Next k End Sub

The next argument is “Delimiter,” i.e., what is the one character that is separating each city from other cities. In this case, “Colon.”

Code:

Sub String_Array_Example2() Dim CityList() As String Dim k As Integer CityList = Split("Bangalore;Mumbai;Kolkata;Hydrabad;Orissa", ";") For k = LBound(CityList) To UBound(CityList) MsgBox CityList(k) Next k End Sub

Şimdi SPLIT işlevi bölme değerleri en yüksek dizi uzunluğunu da belirler.

Hatırlanacak şeyler

  • LBOUND ve UBOUND, dizi uzunluklarını belirleyen işlevlerdir.
  • ARRAY işlevi, bildirilen bir değişken için birçok değeri tutabilir.
  • Bir kez ARRAY işlevini kullanmak istiyorsanız, dizi uzunluğuna karar vermeyin.

Ilginç makaleler...