VBA ReDim

Penyata ReDim Excel VBA

Pernyataan VBA Redim mirip dengan pernyataan redup tetapi perbezaannya adalah bahawa ia digunakan untuk menyimpan atau memperuntukkan lebih banyak ruang penyimpanan atau mengurangkan ruang penyimpanan yang dimiliki oleh pemboleh ubah atau array, sekarang ada dua aspek penting yang digunakan dengan pernyataan adalah Preserve, jika preserve digunakan dengan pernyataan ini maka ia membuat array baru dengan ukuran yang berbeza dan jika preserve tidak digunakan dengan pernyataan ini maka ia hanya mengubah ukuran array dari pemboleh ubah semasa.

Susunan adalah bahagian penting dalam pengekodan VBA. Dengan menggunakan tatasusunan kita dapat menyimpan lebih dari satu nilai dalam pemboleh ubah yang sama yang kita tetapkan. Seperti bagaimana kita menyatakan pemboleh ubah menggunakan kata "Dim" sama kita perlu menyatakan nama array dengan menggunakan "Dim" juga.

Untuk menyatakan nama array, kita perlu terlebih dahulu mengenal pasti jenis array yang akan kita tentukan. Dalam tatasusunan, kami mempunyai 5 jenis.

  1. Array Statik
  2. Array Dinamik
  3. Array Satu Dimensi
  4. Array Dua Dimensi
  5. Array Pelbagai Dimensi

Dalam array statik di excel, kita akan menentukan nilai yang lebih rendah dan nilai atas array dengan lebih awal sambil menyatakan pemboleh ubah. Contohnya, lihat contoh di bawah.

Kod:

 Sub ReDim_Contoh1 () Dim MyArray (1 Hingga 5) Sebagai Sub String End Sub 

Di sini MyArray adalah nama array yang dapat menyimpan nilai dari 1 hingga 5. MyArray dapat menyimpan 5 hasil yang berbeda di dalamnya seperti yang berikut.

Kod:

 Sub ReDim_Example1 () Dim MyArray (1 To 5) Sebagai String MyArray (1) = "Hi" MyArray (2) = "Good" MyArray (3) = "Morning" MyArray (4) = "Have a" MyArray (5) = "Hari Bagus" Sub 

Array Dinamik dengan Penyataan ReDim

Tetapi dalam array Dinamik ini tidak berlaku, kita tidak akan memutuskan nilai yang lebih rendah dan nilai yang lebih tinggi lebih awal daripada kita hanya menentukan nama array dan menetapkan jenis data.

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

Untuk menjadikan nama array dinamik, kita perlu menyatakannya dengan kata "Dim" terlebih dahulu tetapi jangan memutuskan ukuran array terlebih dahulu. Kami hanya menamakan array dengan nilai kosong di dalam kurungan (). Apabila array tidak termasuk ukuran maka ia dianggap sebagai array dinamik.

Dim MyArray () Sebagai Rentetan

Sebaik sahaja anda menyebutkan ukuran array di dalam kurungan, ia menjadi array statik. Dim MyArray (1 hingga 5) Sebagai Rentetan

Dalam array dinamik, kami selalu mengubah ukuran ukuran array dengan menggunakan kata "ReDim" di baris seterusnya kod.

ReDim MyArray (1 hingga 6) Sebagai Rentetan

Sebarang nilai yang tersimpan pada nama array pada langkah-langkah sebelumnya iaitu menggunakan pernyataan "Dim" akan menjadi kosong, dan ukuran yang kami nyatakan menggunakan "ReDim" menjadi ukuran baru dari array.

Contohnya menggunakan Pernyataan Redim VBA

Anda boleh memuat turun Templat VBA ReDim Excel ini di sini - Templat VBA ReDim Excel

Contoh # 1

Lihat contoh penggunaan pernyataan "ReDim" secara praktikal. Ikuti langkah di bawah untuk menerapkan "ReDim".

Langkah 1: Buat nama makro terlebih dahulu.

Langkah 2: Menyatakan nama array sebagai rentetan.

Kod:

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

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

Kod:

 Sub ReDim_Contoh1 () Dim MyArray () Sebagai Rentetan ReDim MyArray (1 Hingga 3) Sub Akhir 

Langkah 4: Jadi sekarang nama array "MyArray" dapat menyimpan hingga 3 nilai di sini. Berikan nilai kepada 3 tatasusunan seperti yang berikut.

Kod:

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

Jadi, susunan pertama sama dengan kata "Selamat Datang", susunan kedua sama dengan kata "to", dan susunan ketiga sama dengan kata "VBA".

Langkah 5: Sekarang simpan nilai array ini dalam sel.

Kod:

 Sub ReDim_Example1 () Dim MyArray () Sebagai String ReDim MyArray (1 To 3) MyArray (1) = "Welcome" MyArray (2) = "to" MyArray (3) = "VBA" Range ("A1"). Nilai = Julat MyArray (1) ("B1"). Nilai = Julat MyArray (2) ("C1"). Nilai = MyArray (3) Sub Akhir 

Langkah 6: Sekiranya anda menjalankan kod ini, kita harus mempunyai nilai ini dalam sel A1, B1, dan C1.

Contoh # 2 - Ubah saiz Saiz Array Sambil Mengingat Nilai Lama.

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

Andaikan anda sudah menyatakan nama array dan memberikan nilai kepada nama array seperti yang berikut.

Sekarang anda ingin menambah panjang array sebanyak 2 iaitu 5. Dalam kes ini, kita dapat menggunakan kata VBA "ReDim Preserve" untuk mengubah ukuran panjang array untuk mengingat nilai lama juga.

Kod:

 Sub ReDim_Example2 () Dim MyArray () Sebagai String ReDim MyArray (3) MyArray (1) = "Welcome" MyArray (2) = "to" MyArray (3) = "VBA" ReDim Preserve MyArray (4) MyArray (4) = Julat "Karakter 1" ("A1"). Nilai = Rentang MyArray (1) ("B1"). Nilai = Julat MyArray (2) ("C1"). Nilai = Rentang MyArray (3) ("D1"). Nilai = MyArray (4) Sub Akhir 

Sekarang kita dapat memberikan dua lagi nilai untuk tatasusunan.

Kod:

 Sub ReDim_Example2 () Dim MyArray () Sebagai String ReDim MyArray (3) MyArray (1) = "Welcome" MyArray (2) = "to" MyArray (3) = "VBA" ReDim Preserve MyArray (4) MyArray (4) = Julat "Karakter 1" ("A1"). Nilai = Rentang MyArray (1) ("B1"). Nilai = Julat MyArray (2) ("C1"). Nilai = Rentang MyArray (3) ("D1"). Nilai = MyArray (4) Sub Akhir 

Sekarang simpan nilai-nilai ini dalam sel.

Kod:

 Sub ReDim_Example2 () Dim MyArray () Sebagai String ReDim MyArray (3) MyArray (1) = "Welcome" MyArray (2) = "to" MyArray (3) = "VBA" ReDim Preserve MyArray (4) MyArray (4) = Julat "Karakter 1" ("A1"). Nilai = Rentang MyArray (1) ("B1"). Nilai = Julat MyArray (2) ("C1"). Nilai = Rentang MyArray (3) ("D1"). Nilai = MyArray (4) Sub Akhir 

Sekarang jalankan makro dan lihat apa yang berlaku

Oleh itu, kami mendapat perkataan baru di sel D1.

Sebab mengapa kita perlu menggunakan kata "preserve" kerana array harus mengingat nilai array lama dalam prosedur.

Apabila anda mengabaikan perkataan "pelihara", ia tidak akan mengingati nilai lama.

Perkara Yang Perlu Diingati 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.