Fungsi VBA UBound - Bagaimana Menggunakan UBound dalam Excel VBA?

Isi kandungan

UBOUND atau juga dikenali sebagai Upper Bound, fungsi ini dalam VBA digunakan dengan fungsi berlawanan yang LBOUND atau juga dikenali sebagai Lower Bound function, penggunaan fungsi ini adalah untuk menentukan panjang array dalam kod dan seperti namanya UBOUND digunakan untuk menentukan had atas larik.

Fungsi VBA UBOUND

Bagaimana anda memberitahu panjang maksimum array dalam excel? Ya, kita dapat melihat dan mengemas kini panjang maksimum array secara manual tetapi jika anda melakukannya selama ini, maka hari ini adalah penghujungnya kerana kita mempunyai fungsi yang disebut UBOUND untuk menentukan panjang maksimum array. Ikuti artikel ini untuk mengetahui lebih lanjut mengenai fungsi UBOUND dalam Excel VBA.

UBOUND bermaksud Upper Bound. Sering kali dalam pengekodan, kita mungkin perlu mencari panjang maksimum tatasusunan. Sebagai contoh, MyResult (24) bermaksud nama array MyResult menyimpan 25 nilai padanya kerana array bermula dari sifar, bukan dari satu. Jadi 24 bermaksud +1, iaitu, jumlah 25 nilai.

Di sini panjang maksimum array ialah 24. Daripada membekalkan panjang array secara manual, kita boleh menggunakan fungsi terbina dalam DIBAWAH untuk mendapatkan panjang maksimum array.

Kodnya adalah: UBOUND (MyResult), iaitu, UBOUND (24)

Oleh itu, fungsi Excel VBA UBOUND mewakili had atas ukuran array.

Bagaimana cara menggunakan Fungsi VBA UBound di Excel?

Formula VBA UBOUND sangat mudah kerana ia hanya mempunyai dua parameter sahaja.

UBound (Nama Array (, Dimensi))
  • Nama Array: Ini adalah nama nama array yang telah kami tentukan. Sebagai contoh, dalam contoh di atas, MyResult adalah nama array.
  • (Dimensi): Jika array mempunyai lebih dari satu dimensi, maka kita perlu menentukan dimensi array. Sekiranya anda mengabaikannya, ia akan memperlihatkan dimensi pertama secara lalai.

Fungsi Excel VBA UBOUND sangat berguna dalam menentukan panjang gelung semasa menjalankan gelung.

Contoh Fungsi UBOUND dalam Excel VBA

Berikut adalah contoh praktikal Fungsi UBound VBA.

Contoh # 1

Untuk memulakan prosiding, izinkan saya menulis kod ringkas. Ikuti langkah-langkah berikut untuk menerapkan fungsi VBA UBOUND.

Langkah 1: Mulakan makro excel dan tentukan nama pemboleh ubah.

Kod:

Sub Ubound_Contoh1 () Dim Array Panjang (0 Hingga 4) Sebagai Rentetan

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

Kod:

Sub Ubound_Contoh1 () Dim ArrayLength (0 To 4) As String ArrayLength (0) = "Hi" ArrayLength (1) = "Friend" ArrayLength (2) = "Welcome" ArrayLength (3) = "to" ArrayLength (4) = Sub Kelas "VBA Class" Akhir

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

Kod:

Sub Ubound_Contoh1 () Dim ArrayLength (0 To 4) As String ArrayLength (0) = "Hi" ArrayLength (1) = "Friend" ArrayLength (2) = "Welcome" ArrayLength (3) = "to" ArrayLength (4) = "VBA Class" MsgBox "Panjang Bound Atas adalah:" & UBound (ArrayLength) Sub End

Langkah 4: Jalankan kod ini dengan menekan kekunci F5, atau anda juga boleh menjalankan kod secara manual, seperti yang ditunjukkan dalam tangkapan skrin di bawah.

Kotak mesej akan menunjukkan kepada anda bilangan teratas larik yang akan ditunjukkan dalam kotak mesej.

Seperti ini dengan menggunakan fungsi Excel VBA UBOUND, kita boleh mendapatkan panjang teratas dari array.

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

Andaikan anda mempunyai senarai data dalam satu helaian excel seperti di bawah.

Data ini akan dikemas kini setiap hari, dan anda perlu menyalin data ini ke lembaran baru setiap kali ia dikemas kini. Mengemas kini ini secara manual memerlukan banyak masa di tempat kerja anda, tetapi saya akan menunjukkan kepada anda kod makro mudah untuk mengotomatisasi ini.

Langkah 1: Buat makro dan tentukan pemboleh ubah array.

Kod:

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

Langkah 2: Sekarang aktifkan lembar data dengan merujuk namanya.

Kod:

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

Langkah 3: Sekarang tetapkan julat data ke pemboleh ubah yang ditentukan dengan menggunakan kod di bawah.

Kod:

Sub Ubound_Example2 () Dim DataRange () Sebagai 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 () Sebagai Variant Sheets ("Data Sheet"). Aktifkan DataRange = Range ("A2", Range ("A1"). End (xlDown). End (xlToRight)) Lembaran kerja. Tambah Julat (ActiveCell , ActiveCell.Offset (UBound (DataRange, 1) - 1, UBound (DataRange, 2) - 1)) = DataRange Padam DataRange End Sub

Perkara yang Perlu Diingat

  • UBOUND mengembalikan panjang maksimum array.
  • Susunan bermula dari 0, bukan dari 1.
  • Sekiranya anda mahukan nilai array yang lebih rendah, maka anda perlu menggunakan VBA LBOUND.
  • Sekiranya susunan mempunyai lebih dari satu dimensi, maka anda juga perlu menentukan nombor dimensi.

Artikel menarik...