Isi kandungan
Susun atur ialah pembolehubah yang menyimpan jenis data yang sama. Jika terdapat hanya satu baris atau satu lajur data, maka ia dikenali sebagai tatasusunan satu dimensi. Walau bagaimanapun, apabila terdapat lebih daripada satu baris dan lajur, ia dipanggil tatasusunan 2D. Kami menggunakan ReDim untuk mengubah saiz tatasusunan dalam VBA. Selain itu, kami menggunakan kata kunci Preserve dengan ReDim untuk mengekalkan data lama. Artikel ini akan menunjukkan kepada anda 2 cara cepat untuk " ReDim Preserve " tatasusunan 2D dalam Excel VBA .
Muat Turun Buku Kerja Amalan
Macro to ReDim Preserve 2D.xlsm
2 Pendekatan Berguna untuk ReDim Preserve 2D Array dalam Excel VBA
Ini ialah set data asas yang dicipta daripada tatasusunan 2D dengan tiga baris dan dua lajur. Pertama, kami akan mencipta tatasusunan ini. Kemudian, kami akan menambah lajur lain pada tatasusunan ini. Kami akan menggunakan " ReDim Preserve " untuk berbuat demikian. Selain itu, kami akan menunjukkan perkara yang berlaku jika kami tidak menggunakan ini.
Secara lalai, kami hanya boleh mengubah saiz dimensi terakhir tatasusunan (iaitu lajur atau sempadan atas). Kami akan menukar tatasusunan, kemudian menukar dimensi terakhir, dan kemudian menukar semula untuk mengubah saiz kedua-dua dimensi tatasusunan 2D dalam Excel VBA.
1 ReDim Preserve Last Dimension 2D Array
Kami akan mentakrifkan dahulu 2D array sebagai dinamik. Kemudian, menggunakan pernyataan ReDim , kami akan mencipta satutatasusunan dengan tiga baris dan dua lajur. Akhir sekali, kami akan menggunakan pernyataan ReDim sekali lagi dengan Preserve kata kunci untuk tingkatkan sempadan atas tatasusunan dua dimensi.
Langkah:
- Untuk bermula, tekan ALT+F11 untuk membuka tetingkap Modul VBA . Sebagai alternatif, anda boleh melakukan ini daripada tab Pembangun → pilih Visual Basic .
- Kemudian, daripada Sisipkan tab → pilih Modul . Kami akan menaip kod VBA di sini.
- Seterusnya, taip kod berikut dalam Modul tetingkap.
7320
Pecahan Kod VBA
- Pertama, kami memanggil Sub prosedur “ Redim_Preserve_2D_Array_Row ”.
- Kemudian, kami mengisytiharkan pembolehubah Our_Array sebagai tatasusunan dinamik.
- Seterusnya, kami menentukan saiz tatasusunan. Sempadan bawah ialah 3 , sempadan atas ialah 2 dan kedua-duanya bermula dari 1 .
- Kemudian, kami menetapkan nilai kepada tatasusunan .
- Selepas itu, kami memasukkan nilai pada julat sel C6:D8 .
- Selepas itu, kami akan melaksanakan kod.
- Jadi, Simpan Modul dan tekan Jalankan .
- Akibatnya, ia akan mengembalikan nilai kepada julat sel yang ditentukan. Kita dapat melihat bahawa " Rachel " berada dalam kedudukan baris 1 dan lajur 1 ,yang ditakrifkan sebagai ( 1,1 ) dalam kod VBA.
- Sekarang, kita akan mengubah saiz tatasusunan.
- Jadi, tambahkan ini pada kod sebelumnya dan alih keluar Pernyataan Julat.Nilai yang pertama. Selain itu, rupa kod yang anda boleh lihat daripada syot kilat di bawah.
6594
- Di sini, kami telah meningkatkan sempadan atas daripada ( 1 Kepada 2 ) kepada ( 1 Kepada 3 ) oleh 1 .
- Kemudian, kami telah menambah nilai pada tatasusunan.
- Sekarang jika kita melaksanakan kod ini, maka kita akan melihat nilai sebelumnya tidak disimpan. Ia akan kembali kosong untuk nilai sebelumnya.
- Sekarang, kita boleh membetulkannya dengan menambahkan Kekalkan kata kunci ke dalam Pernyataan ReDim .
- Akhir sekali, kod penuh kami ialah ini.
7833
- Sekarang, jika kita Jalankan kod ini, maka output akan menjadi seperti ini. Oleh itu, kami akan " ReDim Preserve " dimensi terakhir array 2D dalam Excel VBA.. Sekarang, kaedah seterusnya akan menunjukkan kepada anda bagaimana untuk " ReDim Kekalkan ” dan ubah saiz kedua-dua dimensi tatasusunan.
Baca Lagi: VBA untuk Menjadi Unik Nilai daripada Lajur ke Tatasusunan dalam Excel (3 Kriteria)
Bacaan Serupa
- Cara Menamakan Tatasusunan Jadual dalam Excel (Dengan Langkah Mudah)
- Excel VBA untuk Membaca Fail CSV ke dalam Array (4 Contoh Ideal)
- Cara Menukar Julat kepada Array dalam ExcelVBA (3 Cara)
- Excel VBA: Alih Keluar Pendua daripada Tatasusunan (2 Contoh)
2. Dim Semula Kekalkan Kedua-dua Dimensi Tatasusunan 2D dalam Excel VBA
Dalam kaedah terakhir ini, kami akan menunjukkan kepada anda langkah-langkah untuk mengubah saiz dan " ReDim Preserve " tatasusunan 2D . Di sini, kita akan menggunakan fungsi VBA Transpose untuk mengubah saiz sempadan bawah tatasusunan. Jika kami cuba mengubah saiz sempadan bawah tatasusunan dalam kaedah pertama, maka kami akan melihat ralat " Subskrip di luar julat ". Sekarang, tanpa berlengah lagi, mari kita lihat bagaimana kita boleh membetulkan perkara ini dan mencapai matlamat kita.
Langkah:
- Pertama, seperti yang ditunjukkan dalam kaedah pertama , munculkan tetingkap Modul .
- Kedua, tambah baris kod berikut ke dalam kod pertama.
8797
- Selain itu, kod untuk kaedah terakhir kelihatan seperti ini.
2277
Pecahan Kod VBA
- Pertama sekali, kami memanggil prosedur Sub “ ReDim_Preserve_2D_Array_Both_Dimensions ” .
- Kemudian, selebihnya kod sehingga fungsi VBA Transpose adalah sama seperti dalam kod pertama.
- Di sini, kami sedang menukar tatasusunan.
- Kemudian, kami meningkatkan sempadan atas tatasusunan.
- Selepas itu, kami menukar tatasusunan semula. Oleh itu, akhirnya ia akan menukar sempadan bawah.
- Seterusnya, kami memasukkan nilai untuk tatasusunan saiz semula sambilmengekalkan data lama.
- Akhir sekali, kami menulis nilai pada julat sel C6:E9 .
- Selepas bahawa, seperti yang ditunjukkan dalam kaedah pertama , Jalankan kod ini.
- Oleh itu, kita boleh menggambarkan bagaimana kod itu mengekalkan Tatasusunan 2D menggunakan “ ReDim Preserve ” dan fungsi VBA Transpose .
Baca Lagi: VBA untuk Transpose Array dalam Excel (3 Kaedah)
Perkara yang Perlu Diingati
- ReDim Preserve tidak boleh menukar sempadan bawah tatasusunan. Untuk berbuat demikian, kita perlu menggunakan fungsi Transpose .
- Kami hanya boleh menggunakan ReDim pada tatasusunan dinamik.
Kesimpulan
Kami telah menunjukkan kepada anda dua cara pantas untuk “ ReDim Preserve ” a 2D array dalam Excel VBA. Jika anda menghadapi sebarang masalah mengenai kaedah ini atau mempunyai sebarang maklum balas untuk saya, sila komen di bawah. Selain itu, anda boleh melawati tapak kami ExcelWIKI untuk lebih banyak artikel berkaitan Excel. Terima kasih kerana membaca, teruskan kecemerlangan!