Bagaimana cara mendapatkan panjang array menggunakan vba?
Di VBA, mendapatkan panjang array berarti menghitung jumlah elemen yang Anda miliki dalam array tersebut. Untuk itu perlu diketahui unsur terendah dan unsur tertinggi. Jadi untuk mendapatkan ini Anda bisa menggunakan fungsi UBOUND dan LBOUND yang masing-masing mengembalikan batas atas dan batas bawah.
Selain itu Anda juga dapat menggunakan COUNTA yang merupakan fungsi spreadsheet. Dan dalam tutorial ini kita akan melihat kedua metode tersebut sehingga Anda dapat menggunakan salah satunya sesuai kenyamanan Anda.
Langkah-langkah untuk mendapatkan ukuran array
Di sini kita memiliki tabel yang berisi daftar bulan dan jumlah penjualan setiap bulannya.
- Pastikan Anda memiliki tabel yang dideklarasikan dengan benar dengan baris dan kolom.
- Setelah itu, dua variabel lagi (karena kita memiliki array dua dimensi) untuk menyimpan batas-batas array.
- Maka Anda perlu menggunakan rumus di mana Anda perlu menggunakan fungsi Ubound untuk mendapatkan batas atas dan kemudian Lbound untuk mendapatkan batas bawah array.
- Karena Anda memiliki array dua dimensi, Anda berdua harus terikat pada dimensi dan menetapkan nilai ini pada variabel.
- Terakhir, kalikan panjang yang didapat dari Ubound dan Lbound sebagai batas atas dan bawah.
Berikut kode lengkapnya.
Dim yearSales(1 To 12, 1 To 2) As Integer Dim iCount1 As Integer, iCount2 As Integer iCount1 = UBound(yearSales, 1) - LBound(yearSales, 1) + 1 iCount2 = UBound(yearSales, 2) - LBound(yearSales, 2) + 1 MsgBox iCount1 * iCount2
Catatan: Anda pasti bertanya-tanya apakah kami memiliki total 13 baris dalam tabel yang saya bagikan kepada Anda di awal artikel.
Namun kami menggunakan tabel 13 baris karena baris pertama adalah judul. Dan di sini kita telah menggunakan fungsi IF STATEMENT dan ISEMPTY untuk memeriksa apakah array yang dideklarasikan tidak mengandung elemen apa pun.
Dim yearSales(1 To 12, 1 To 2) As Integer Dim iCount1 As Integer, iCount2 As Integer If IsEmpty(yearSales) = 0 Then MsgBox "This array has zero elements." Else iCount1 = UBound(yearSales, 1) - LBound(yearSales, 1) + 1 iCount2 = UBound(yearSales, 2) - LBound(yearSales, 2) + 1 MsgBox "This array has " & iCount1 * iCount2 & " element(s)."
Menggunakan COUNTA untuk mendapatkan panjang array
Seperti yang Anda ketahui, array adalah sekumpulan elemen yang terstruktur dalam satu dimensi atau multidimensi dan Anda dapat menggunakan fungsi COUNTA ( fungsi spreadsheet ) untuk menghitung elemen-elemen ini sekaligus.
Dalam kode berikut, Anda menggunakan array yang sama yang Anda deklarasikan sebelumnya dan kemudian menggunakan variabel untuk menyimpan jumlah elemen yang dikembalikan oleh fungsi.
Dan seperti yang Anda lihat, hasil yang dikembalikan adalah 24, yang merupakan jumlah total elemen yang kita miliki dalam array.
Dim yearSales(1 To 12, 1 To 2) As Integer iCount = WorksheetFunction.CountA(yearSales) MsgBox iCount
Ada satu hal yang perlu Anda perhatikan, cara ini tidak ideal untuk digunakan di setiap situasi, jadi sebaiknya selalu gunakan cara yang telah kita bahas sebelumnya.
Anda juga dapat menulis kode untuk memeriksa terlebih dahulu apakah array yang dideklarasikan tidak kosong.
Dim yearSales(1 To 12, 1 To 2) As Integer If IsEmpty(yearSales) = 0 Then MsgBox "This array has zero elements." Else iCount = WorksheetFunction.CountA(yearSales) MsgBox "This array has " & iCount & " element(s)."