Fungsi UBound VBA - Bagaimana cara menggunakan UBound di Excel VBA?

Daftar Isi

UBOUND atau disebut juga Upper Bound, fungsi pada VBA ini digunakan dengan fungsi kebalikannya yaitu fungsi LBOUND atau disebut juga dengan fungsi Lower Bound, fungsi ini digunakan untuk menentukan panjang sebuah array dalam sebuah kode dan sesuai dengan namanya UBOUND digunakan untuk menentukan batas atas larik.

Fungsi VBA UBOUND

Bagaimana Anda mengetahui panjang maksimum dari array di excel? Ya, kita dapat secara manual melihat dan memperbarui panjang maksimum array tetapi jika Anda melakukannya selama ini, maka hari ini adalah akhirnya karena kita memiliki fungsi yang disebut UBOUND untuk menentukan panjang maksimum array. Ikuti artikel ini untuk mengetahui lebih banyak tentang fungsi UBOUND di Excel VBA.

UBOUND adalah singkatan dari Upper Bound. Seringkali dalam pengkodean, kita mungkin perlu mencari panjang maksimum dari array. Misalnya, MyResult (24) berarti nama array MyResult menampung 25 nilai karena array dimulai dari nol, bukan dari satu. Jadi 24 berarti +1, yaitu total 25 nilai.

Di sini panjang maksimum array adalah 24. Alih-alih menyediakan panjang array secara manual, kita bisa menggunakan fungsi bawaan UBOUND untuk mendapatkan panjang maksimum array.

Kodenya adalah: UBOUND (MyResult), yaitu UBOUND (24)

Jadi fungsi Excel VBA UBOUND merepresentasikan batas atas ukuran array.

Bagaimana cara menggunakan Fungsi VBA UBound di Excel?

Rumus VBA UBOUND sangat sederhana karena hanya memiliki dua parameter saja.

UBound (Arrayname (, Dimension))
  • Array Name: Ini adalah nama dari nama array yang telah kita tentukan. Misalnya, dalam contoh di atas, MyResult adalah nama array.
  • (Dimension): Jika array memiliki lebih dari satu dimensi, maka kita perlu menentukan dimensi dari array tersebut. Jika Anda mengabaikannya, dimensi pertama akan diperlakukan secara default.

Fungsi Excel VBA UBOUND sangat berguna dalam menentukan panjang loop saat menjalankan loop.

Contoh Fungsi UBOUND di Excel VBA

Berikut adalah contoh praktis dari VBA UBound Function.

Contoh 1

Untuk memulai prosesnya, izinkan saya menulis kode sederhana. Ikuti langkah-langkah di bawah ini untuk menerapkan fungsi VBA UBOUND.

Langkah 1: Mulai makro excel dan tentukan nama variabel.

Kode:

Sub Ubound_Example1 () Dim ArrayLength (0 Sampai 4) Sebagai String

Langkah 2: Saya akan memberikan nilai ke nama array ini.

Kode:

Sub Ubound_Example1 () Dim ArrayLength (0 Sampai 4) Sebagai String ArrayLength (0) = "Hi" ArrayLength (1) = "Friend" ArrayLength (2) = "Selamat Datang" ArrayLength (3) = "to" ArrayLength (4) = Sub Akhir "Kelas VBA"

Langkah 3: Sekarang, menggunakan kotak pesan dengan fungsi UBOUND, kita akan melihat panjang maksimum array.

Kode:

Sub Ubound_Example1 () Dim ArrayLength (0 Sampai 4) Sebagai String ArrayLength (0) = "Hi" ArrayLength (1) = "Friend" ArrayLength (2) = "Selamat Datang" ArrayLength (3) = "to" ArrayLength (4) = "VBA Class" MsgBox "Panjang Batas Atas adalah:" & UBound (ArrayLength) End Sub

Langkah 4: Jalankan kode ini dengan menekan tombol F5, atau Anda juga dapat menjalankan kode secara manual, seperti yang ditunjukkan pada gambar di bawah ini.

Kotak pesan akan menunjukkan nomor batas atas dari larik yang akan ditampilkan di kotak pesan.

Seperti ini dengan menggunakan fungsi UBOUND VBA Excel, kita bisa mendapatkan panjang batas atas dari sebuah array.

Contoh # 2 - Menggunakan Fungsi UBOUND VBA Excel untuk Menyalin Data

Asumsikan Anda memiliki daftar data dalam satu lembar excel seperti di bawah ini.

Data ini akan diperbarui setiap hari, dan Anda perlu menyalin data ini ke lembar baru setiap kali diperbarui. Memperbarui ini secara manual akan memakan banyak waktu di tempat kerja Anda, tetapi saya akan menunjukkan kepada Anda kode makro sederhana untuk mengotomatiskan ini.

Langkah 1: Buat makro dan tentukan variabel array.

Kode:

Sub Ubound_Example2 () Dim DataRange () Sebagai Variant End Sub

Langkah 2: Sekarang aktifkan lembar data dengan mengacu pada namanya.

Kode:

Sub Ubound_Example2 () Dim DataRange () As Variant Sheets ("Data Sheet"). Aktifkan End Sub

Langkah 3: Sekarang tetapkan rentang data ke variabel yang ditentukan dengan menggunakan kode di bawah ini.

Kode:

Sub Ubound_Example2 () Dim DataRange () As Variant Sheets ("Data Sheet"). Aktifkan DataRange = Range ("A2", Range ("A1"). End (xlDown) .End (xlToRight)) End Sub

Step 4: Now add a new worksheet to the workbook.

Code:

Sub Ubound_Example2() Dim DataRange() As Variant Sheets("Data Sheet").Activate DataRange = Range("A2", Range("A1").End(xlDown).End(xlToRight)) Worksheets.Add End Sub

Step 5: Now add the data to the newly added sheet by using the Excel VBA UBOUND function in the form of the below code.

Code:

Sub Ubound_Example2() Dim DataRange() As Variant Sheets("Data Sheet").Activate DataRange = Range("A2", Range("A1").End(xlDown).End(xlToRight)) Worksheets.Add Range(ActiveCell, ActiveCell.Offset(UBound(DataRange, 1) - 1, UBound(DataRange, 2) - 1)) = DataRange End Sub

The above code will offset the cells by the maximum length returned by the UBOUND function, and this range will be equal to the value of the array name “DataRange.

Step 6: Now run this code. It will paste the value to the new sheet.

This code is a dynamic one because even when the data increases horizontally and vertically, it will automatically take the range. Now I will add some dummy lines to the data.

Now I will once again run this code. It will now add the newly added lines as well.

Code:

Sub Ubound_Example2 () Dim DataRange () As Variant Sheets ("Data Sheet"). Aktifkan DataRange = Range ("A2", Range ("A1"). End (xlDown) .End (xlToRight)) Worksheets. Add Range (ActiveCell , ActiveCell.Offset (UBound (DataRange, 1) - 1, UBound (DataRange, 2) - 1)) = DataRange Erase DataRange End Sub

Hal-hal untuk diingat

  • UBOUND mengembalikan panjang maksimum array.
  • Array dimulai dari 0, bukan dari 1.
  • Jika Anda menginginkan nilai array yang lebih rendah, maka Anda perlu menggunakan VBA LBOUND.
  • Jika array memiliki lebih dari satu dimensi, Anda juga perlu menentukan nomor dimensi.

Artikel yang menarik...