VBA String Array - Bagaimana cara mendeklarasikan dan menginisialisasi String Array di Excel VBA?

Larik String VBA Excel

Di VBA, array String tidak lain adalah variabel array yang dapat menampung lebih dari satu nilai string dengan satu variabel.

Misalnya, lihat kode VBA di bawah ini.

Kode:

Sub String_Array_Example () Dim CityList (1 Sampai 5) Sebagai Varian CityList (1) = "Bangalore" CityList (2) = "Mumbai" CityList (3) = "Kolkata" CityList (4) = "Hyderabad" CityList (5) = "Orissa" MsgBox CityList (1) & "," & CityList (2) & "," & CityList (3) & "," & CityList (4) & "," & CityList (5) End Sub

Dalam kode di atas, saya telah mendeklarasikan sebagai variabel array dan menetapkan panjang array sebagai 1 hingga 5.

Redupkan CityList (1 Sampai 5) Sebagai Varian

Untuk variabel array ini, saya telah menetapkan 5 nama kota yang menyebutkan setiap jumlah array dalam tanda kurung.

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

Selanjutnya, saya telah menulis kode untuk menunjukkan nama kota ini di kotak pesan.

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

Ketika saya menjalankan kode ini, kita akan mendapatkan kotak pesan yang menampilkan semua nama kota dalam satu kotak pesan.

Kita semua tahu bahwa ini telah menghemat banyak waktu dari jadwal kita dengan menghilangkan tugas mendeklarasikan variabel individu untuk setiap kota. Namun, satu hal lagi yang perlu Anda pelajari adalah kita masih bisa mengurangi kode baris yang kita tulis untuk nilai string. Mari kita lihat bagaimana kita menulis kode untuk array string VBA.

Contoh String Array di Excel VBA

Di bawah ini adalah contoh array string VBA excel.

Contoh 1

Seperti yang telah kita lihat pada kode di atas, kita belajar bahwa kita dapat menyimpan lebih dari satu nilai dalam variabel berdasarkan ukuran array yang ditentukan.

Sekarang yang perlu kita lakukan adalah tidak memutuskan panjang array sebelumnya.

Kode:

Sub String_Array_Example1 () Redupkan CityList () Sebagai Variant End Sub

Seperti yang Anda lihat di dalam tanda kurung di atas, saya belum menulis panjang lebar apa pun. Sekarang untuk variabel ini, mari masukkan nilai dengan menggunakan fungsi VBA ARRAY.

Di dalam Array, berikan nilai pada tanda kutip ganda, masing-masing dipisahkan oleh koma (,).

Kode:

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

Sekarang pertahankan kode lama untuk menunjukkan hasil nama kota di kotak pesan di VBA.

Kode:

Sub String_Array_Example1 () Redupkan CityList () Sebagai Varian CityList = Array ("Bangalore", "Mumbai", "Kolkata", "Hyderabad", "Orissa") MsgBox CityList (0) & "," & CityList (1) & " , "& CityList (2) &", "& CityList (3) &", "& CityList (4) End Sub

Satu perubahan yang saya buat pada kode di atas adalah karena kita belum memutuskan batas bawah dan batas atas variabel array, dan kita telah menggunakan fungsi array hitungan akan mulai dari 0, bukan dari 1.

Jadi, itulah alasan kami menyebutkan nilai-nilai sebagai CityList (0), ClityList (1), CityList (2), CityList (3), dan CityList (4).

Sekarang jalankan kode melalui tombol pintas excel F5 atau secara manual. Kami mendapatkan hasil yang sama seperti yang kami dapatkan dari kode sebelumnya.

Contoh # 2

VBA String Array dengan Fungsi LBOUND & UBOUND

Jika Anda tidak ingin menampilkan semua daftar kota dalam satu kotak pesan, Anda perlu menyertakan loop, tentukan satu variabel lagi untuk loop.

Sekarang untuk memasukkan perulangan FOR NEXT, kami tidak yakin berapa kali kami perlu menjalankan kode. Dalam hal ini, kita dapat memutuskannya sebanyak 5 kali, tetapi itu bukan cara yang tepat untuk mendekati masalah. Jadi bagaimana dengan gagasan pengenal panjang array tingkat rendah dan lebih tinggi otomatis ???

Saat kita membuka loop FOR NEXT, biasanya kita memutuskan panjang loop sebagai 1 hingga 5 atau 1 hingga 10 tergantung pada situasinya. Alih-alih memasukkan angka secara manual, mari gunakan fungsi LBOUND dan UBOUND untuk menentukan nilai yang lebih rendah dan nilai atas secara otomatis.

Untuk LBound dan Ubound, saya telah memberikan nama array, yaitu CityList. VBA LBound mengidentifikasi nilai yang lebih rendah dari variabel array, dan fungsi VBA UBound mengidentifikasi nilai atas dari variabel array.

Sekarang tunjukkan nilai di kotak pesan, alih-alih memasukkan nomor seri, biarkan variabel loop "k" mengambil nilai array secara otomatis.

Kode:

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

Sekarang kotak pesan akan menampilkan setiap nama kota secara terpisah.

Contoh # 3

VBA String Array dengan Fungsi Split

Sekarang asumsikan Anda memiliki nama kota seperti di bawah ini.

Bangalore; Mumbai; Kolkata; Hydrabad; Orissa

Dalam hal ini, semua kota digabungkan dengan titik dua yang memisahkan setiap kota. Dalam kasus seperti itu, kita perlu menggunakan fungsi SPLIT untuk memisahkan setiap kota.

Untuk Ekspresi, berikan daftar kota.

Kode:

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

Argumen berikutnya adalah “Pembatas,” yaitu karakter apa yang memisahkan setiap kota dari kota lain. Dalam hal ini, “Colon.”

Kode:

Sub String_Array_Example2 () Dim CityList () As String Dim k As Integer CityList = Split ("Bangalore; Mumbai; Kolkata; Hydrabad; Orissa", ";") Untuk k = LBound (CityList) Ke UBound (CityList) MsgBox CityList (k ) Berikutnya k Akhiri Sub

Sekarang nilai pemisahan fungsi SPLIT juga menentukan panjang array tertinggi.

Hal-hal untuk diingat

  • LBOUND dan UBOUND adalah fungsi untuk menentukan panjang array.
  • Fungsi ARRAY dapat menampung banyak nilai untuk variabel yang dideklarasikan.
  • Sekali jika Anda ingin menggunakan fungsi ARRAY, jangan putuskan panjang array.

Artikel yang menarik...