VBA String Array

Larik String VBA Excel

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

Untuk contoh 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 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 excel vba.

Anda dapat mengunduh Template Excel Array String VBA ini di sini - Template Excel Array String VBA

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 atas di dalam tanda kurung, 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 yang 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, jumlah array 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, kita mendapatkan hasil yang sama seperti yang kita 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, maka 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, kami dapat memutuskannya seperti 5 kali tetapi itu bukan cara yang tepat untuk mendekati masalah. Jadi bagaimana dengan gagasan pengenal panjang array tingkat rendah dan lebih tinggi otomatis ???

Ketika kita membuka loop FOR NEXT, kita biasanya 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 menyediakan 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 menyediakan 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 selanjutnya adalah “Delimiter” yaitu apa satu karakter 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 memutuskan panjang array.