Bagaimana cara membuat tabel dinamis di vba?
Array dinamis adalah sesuatu di mana Anda dapat mengubah ukuran array dan menambahkan nilai lebih ke dalamnya saat menjalankan kode. Dalam tutorial ini, kita akan mengeksplorasi cara menulis kode di mana Anda dapat mengubah ukuran dan menambahkan lebih banyak elemen.
Buat tabel dinamis di VBA
- Pertama, deklarasikan array dengan namanya.
- Setelah itu, jumlah elemen dikosongkan dalam tanda kurung.
- Sekarang gunakan instruksi ReDim.
- Pada akhirnya, tentukan jumlah elemen yang ingin Anda tambahkan ke array.
Dim myArray() As String ReDim myArray(5)
Jangan lupa untuk membaca artikel Joshua tentang kinerja array tetap dan dinamis.
Array multidimensi dinamis
Contoh yang kami gunakan adalah array satu dimensi dan dengan cara yang sama, Anda juga menggunakan pernyataan ReDim untuk membuat array multidimensi dinamis.
Dim myArray() As String ReDim myArray(5, 8)
Tambahkan elemen baru ke array dinamis di VBA
Array dinamis tidak akan ada artinya jika Anda tidak dapat menambahkan elemen baru ke dalamnya. Pada contoh berikut, kita akan melihat cara menambahkan elemen baru setelah Anda mendefinisikan ulang jumlah elemen dalam array.
'declaring array with no element. '--------------------- Dim iNames() As String '--------------------- 'declaring variables to store counter _ 'and elements from the range. '---------------------- Dim iCount As Integer Dim iElement As Integer '---------------------- 'get the last row number to decide the _ 'number of elements for the array. '------------------------------------ iCount = Range("A1").End(xlDown).Row '------------------------------------ 're-defining the elements for the array. '------------------- ReDim iNames(iCount) '------------------- 'using a for loop to add elements in the array 'from the range starting from cell A1 '-------------------------------------------------- For iElement = 1 To iCount iNames(iElement - 1) = Cells(iElement, 1).Value Next iElement '-------------------------------------------------- 'print all the elements from the 'to the immediate window '-------------------- Debug.Print iNames(0) Debug.Print iNames(1) Debug.Print iNames(2) '--------------------
Mari kita pahami kode ini langkah demi langkah.
- Pada langkah pertama, Anda mendeklarasikan array dengan nama “myArray”.
- Setelah itu Anda memiliki dua variabel untuk menyimpan nilai penghitung untuk loop yang nantinya perlu Anda gunakan dalam kode untuk mendapatkan nilai dari rentang dan menambahkan nilai tersebut sebagai elemen ke dalam array.
- Kemudian Anda memiliki sebaris kode untuk mendapatkan baris terakhir dari rentang yang membantu Anda mengetahui elemen mana yang perlu Anda tambahkan ke array.
- Pada langkah keempat, Anda menggunakan pernyataan ReDim untuk mendefinisikan ulang elemen array menggunakan nomor baris terakhir yang diperoleh pada langkah sebelumnya.
- Kemudian Anda memiliki FOR LOOP (Untuk Berikutnya) yang mengulang rentang mulai dari sel A1, mengambil nilai dari sana dan menambahkannya sebagai elemen ke array satu per satu.
- Pada akhirnya, Anda memiliki pernyataan Debug.Print untuk mencetak semua item di jendela langsung .
Dan ketika saya menambahkan nilai baru ke rentang dan menjalankan kode lagi, secara otomatis menambahkan elemen tersebut ke array dan mencetaknya ke window langsung .