VBA ReDim

Pernyataan ReDim VBA Excel

Pernyataan VBA Redim mirip dengan pernyataan redup tetapi perbedaannya adalah digunakan untuk menyimpan atau mengalokasikan lebih banyak ruang penyimpanan atau mengurangi ruang penyimpanan yang dimiliki variabel atau array dengannya, sekarang ada dua aspek penting yang digunakan dengan pernyataan adalah Preserve, jika melestarikan digunakan dengan pernyataan ini maka itu membuat larik baru dengan ukuran berbeda dan jika melestarikan tidak digunakan dengan pernyataan ini maka itu hanya mengubah ukuran larik dari variabel saat ini.

Array adalah bagian penting dari pengkodean VBA. Dengan menggunakan array, kita dapat menyimpan lebih dari satu nilai dalam variabel yang sama yang kita definisikan. Seperti bagaimana kita mendeklarasikan variabel menggunakan kata "Dim", kita juga perlu mendeklarasikan nama array dengan menggunakan "Dim".

Untuk mendeklarasikan nama array, pertama-tama kita perlu mengidentifikasi jenis array yang akan kita definisikan. Dalam array, kami memiliki 5 tipe.

  1. Array Statis
  2. Array Dinamis
  3. Array Satu Dimensi
  4. Array Dua Dimensi
  5. Array Multi-Dimensi

Dalam array statis di excel, kita akan menentukan nilai yang lebih rendah dan nilai atas dari array jauh-jauh hari saat mendeklarasikan variabel. Misalnya, lihat contoh di bawah ini.

Kode:

 Sub ReDim_Example1 () Dim MyArray (1 To 5) As String End Sub 

Di sini MyArray adalah nama dari array yang dapat menampung nilai dari 1 sampai 5. MyArray dapat menampung 5 hasil berbeda di dalamnya seperti di bawah ini.

Kode:

 Sub ReDim_Example1 () Dim MyArray (1 To 5) As String MyArray (1) = "Hi" MyArray (2) = "Good" MyArray (3) = "Morning" MyArray (4) = "Have a" MyArray (5) = "Nice Day" End Sub 

Dynamic Array dengan Pernyataan ReDim

Tetapi dalam Dynamic array hal ini tidak terjadi, kita tidak akan memutuskan nilai yang lebih rendah dan nilai atas jauh-jauh hari, melainkan kita hanya menentukan nama array dan menetapkan tipe data.

 Sub ReDim_Example1 () Dim MyArray () As String End Sub 

Untuk membuat nama array menjadi dinamis, kita perlu mendeklarasikannya dengan kata "Dim" terlebih dahulu tetapi jangan memutuskan ukuran array dengan baik sebelumnya. Kami hanya memberi nama array dengan nilai kosong di dalam tanda kurung (). Jika array tidak menyertakan ukuran maka itu diperlakukan sebagai array dinamis.

Redupkan MyArray () Sebagai String

Saat Anda menyebutkan ukuran larik di dalam tanda kurung, itu menjadi larik statis. Redupkan MyArray (1 hingga 5) Sebagai String

Dalam larik dinamis, kami selalu mengubah ukuran larik dengan menggunakan kata "ReDim" di baris kode berikutnya.

ReDim MyArray (1 hingga 6) Sebagai String

Setiap nilai yang disimpan ke nama array pada langkah sebelumnya yaitu menggunakan pernyataan "Dim" adalah null, dan ukuran yang kita deklarasikan menggunakan "ReDim" menjadi ukuran baru dari array tersebut.

Contoh untuk menggunakan Pernyataan VBA Redim

Anda dapat mendownload Template Excel ReDim VBA ini di sini - Template VBA ReDim Excel

Contoh 1

Lihat contoh penggunaan pernyataan "ReDim" secara praktis. Ikuti langkah-langkah di bawah ini untuk menerapkan "ReDim".

Langkah 1: Buat nama makro terlebih dahulu.

Langkah 2: Deklarasikan nama array sebagai string.

Kode:

 Sub ReDim_Example1 () Dim MyArray () As String End Sub 

Langkah 3: Sekarang gunakan kata "Redim" dan tetapkan ukuran array.

Kode:

 Sub ReDim_Example1 () Dim MyArray () As String ReDim MyArray (1 To 3) End Sub 

Langkah 4: Jadi sekarang nama array "MyArray" dapat menampung hingga 3 nilai di sini. Tetapkan nilai ke 3 larik ini seperti di bawah ini.

Kode:

 Sub ReDim_Example1 () Dim MyArray () As String ReDim MyArray (1 To 3) MyArray (1) = "Welcome" MyArray (2) = "to" MyArray (3) = "VBA" End Sub 

Jadi, larik pertama sama dengan kata “Selamat Datang”, larik kedua sama dengan kata “to”, dan larik ketiga sama dengan kata “VBA”.

Langkah 5: Sekarang simpan nilai array ini dalam sel.

Kode:

 Sub ReDim_Example1 () Dim MyArray () As String ReDim MyArray (1 To 3) MyArray (1) = "Welcome" MyArray (2) = "to" MyArray (3) = "VBA" Range ("A1"). Nilai = MyArray (1) Range ("B1"). Value = MyArray (2) Range ("C1"). Value = MyArray (3) End Sub 

Langkah 6: Jika Anda menjalankan kode ini, kita harus memiliki nilai ini di sel A1, B1, dan C1.

Contoh # 2 - Ubah Ukuran Array Size Sambil Mengingat Nilai-Nilai Lama.

Setelah nama array diberi nilai, kita juga dapat mengubah ukurannya kapan saja dalam prosedur dengan menggunakan kata "ReDim Preserve".

Asumsikan Anda telah mendeklarasikan nama array dan menetapkan nilai ke nama array tersebut seperti di bawah ini.

Sekarang Anda ingin menambah panjang array sebanyak 2 yaitu 5. Dalam kasus ini, kita dapat menggunakan kata VBA "ReDim Preserve" untuk mengubah ukuran panjang array untuk mengingat nilai-nilai lama juga.

Kode:

 Sub ReDim_Example2 () Dim MyArray () As String ReDim MyArray (3) MyArray (1) = "Selamat Datang" MyArray (2) = "to" MyArray (3) = "VBA" ReDim Preserve MyArray (4) MyArray (4) = "Karakter 1" Range ("A1"). Nilai = MyArray (1) Range ("B1"). Value = MyArray (2) Range ("C1"). Value = MyArray (3) Range ("D1"). Nilai = MyArray (4) End Sub 

Sekarang kita dapat menetapkan dua nilai lagi ke array.

Kode:

 Sub ReDim_Example2 () Dim MyArray () As String ReDim MyArray (3) MyArray (1) = "Selamat Datang" MyArray (2) = "to" MyArray (3) = "VBA" ReDim Preserve MyArray (4) MyArray (4) = "Karakter 1" Range ("A1"). Nilai = MyArray (1) Range ("B1"). Value = MyArray (2) Range ("C1"). Value = MyArray (3) Range ("D1"). Nilai = MyArray (4) End Sub 

Sekarang simpan nilai-nilai ini dalam sel.

Kode:

 Sub ReDim_Example2 () Dim MyArray () As String ReDim MyArray (3) MyArray (1) = "Selamat Datang" MyArray (2) = "to" MyArray (3) = "VBA" ReDim Preserve MyArray (4) MyArray (4) = "Karakter 1" Range ("A1"). Nilai = MyArray (1) Range ("B1"). Value = MyArray (2) Range ("C1"). Value = MyArray (3) Range ("D1"). Nilai = MyArray (4) End Sub 

Sekarang jalankan makro dan lihat apa yang terjadi

Jadi kami mendapat kata baru di sel D1.

Alasan mengapa kita perlu menggunakan kata "preservasi" karena array harus mengingat nilai array yang lama dalam prosedur.

Saat Anda mengabaikan kata "melestarikan" itu tidak akan mengingat nilai-nilai lama.

Hal yang Perlu Diingat Di Sini

  • ReDim can only hold the last value of the array, not the many values. For example, we cannot use this code “ReDim Preserve MyArray(4 to 5)”, this will throw the error.
  • We cannot ReDim static arrays. The moment you assign the size of the array inside the parenthesis it becomes a static array.
  • Using ReDim we cannot change the data type. The array can hold whatever the data type we have assigned while declaring the array.