Mục lục
Mảng là một biến chứa các loại dữ liệu giống nhau. Nếu chỉ có một hàng hoặc một cột dữ liệu thì được gọi là mảng một chiều. Tuy nhiên, khi có nhiều hơn một hàng và cột, nó được gọi là mảng 2D. Chúng tôi sử dụng ReDim để thay đổi kích thước một mảng trong VBA. Ngoài ra, chúng tôi sử dụng từ khóa Preserve với ReDim để giữ nguyên dữ liệu cũ. Bài viết này sẽ chỉ cho bạn 2 các cách nhanh chóng để “ ReDim Preserve ” một mảng 2D trong Excel VBA .
Tải xuống Workbook thực hành
Macro to ReDim Preserve 2D.xlsm
2 phương pháp hữu ích để ReDim Preserve Mảng 2D trong Excel VBA
Đây là tập dữ liệu cơ sở được tạo từ mảng 2D có ba hàng và hai cột. Đầu tiên, chúng ta sẽ tạo mảng này. Sau đó, chúng tôi sẽ thêm một cột khác vào mảng này. Chúng tôi sẽ sử dụng “ ReDim Preserve ” để làm như vậy. Ngoài ra, chúng tôi sẽ chứng minh điều gì sẽ xảy ra nếu chúng tôi không sử dụng điều này.
Theo mặc định, chúng tôi chỉ có thể thay đổi kích thước thứ nguyên cuối cùng của mảng (tức là các cột hoặc giới hạn trên). Chúng tôi sẽ chuyển đổi mảng, sau đó thay đổi kích thước cuối cùng, rồi chuyển đổi lại lần nữa để thay đổi kích thước cả hai kích thước của mảng 2D trong Excel VBA.
1 .ReDim Preserve Last Dimension Mảng 2D
Trước tiên, chúng tôi sẽ xác định mảng 2D là động. Sau đó, sử dụng câu lệnh ReDim , chúng ta sẽ tạo mộtmảng có ba hàng và hai cột. Cuối cùng, chúng ta sẽ sử dụng lại câu lệnh ReDim với từ khóa Preserve để tăng cận trên của mảng hai chiều.
Các bước:
- Để bắt đầu, nhấn ALT+F11 để hiển thị cửa sổ Mô-đun VBA . Ngoài ra, bạn có thể thực hiện việc này từ tab Nhà phát triển → chọn Visual Basic .
- Sau đó, từ Chèn thẻ → chọn Mô-đun . Chúng tôi sẽ nhập mã VBA tại đây.
- Tiếp theo, nhập mã sau vào Mô-đun window.
7003
Phân tích mã VBA
- Đầu tiên, chúng tôi đang gọi Quy trình phụ “ Redim_Preserve_2D_Array_Row ”.
- Sau đó, chúng ta khai báo biến Our_Array dưới dạng một mảng động.
- Tiếp theo, chúng ta xác định kích thước của mảng. Giới hạn dưới là 3 , giới hạn trên là 2 và cả hai đều bắt đầu từ 1 .
- Sau đó, chúng ta gán giá trị cho mảng .
- Sau đó, chúng ta nhập các giá trị vào dải ô C6:D8 .
- Sau đó, chúng ta sẽ thực thi mã.
- Vì vậy, hãy Lưu Mô-đun và nhấn Chạy .
- Kết quả là nó sẽ trả về các giá trị cho phạm vi ô đã xác định. Chúng ta có thể thấy rằng “ Rachel ” ở vị trí hàng 1 và cột 1 ,được định nghĩa là ( 1,1 ) trong mã VBA.
- Bây giờ, chúng ta sẽ thay đổi kích thước mảng.
- Vì vậy, hãy thêm phần này vào mã trước đó và xóa câu lệnh Phạm vi.Giá trị đầu tiên. Ngoài ra, bạn có thể thấy mã trông như thế nào từ ảnh chụp nhanh bên dưới.
5061
- Ở đây, chúng tôi đã tăng giới hạn trên từ ( 1 Tới 2 ) tới ( 1 Tới 3 ) của 1 .
- Sau đó, chúng ta đã thêm các giá trị vào mảng.
- Bây giờ nếu chúng ta thực thi đoạn mã này, thì chúng ta sẽ thấy các giá trị trước đó không được giữ nguyên. Nó sẽ trả về giá trị trống cho các giá trị trước đó.
- Bây giờ, chúng ta có thể khắc phục điều này bằng cách thêm Từ khóa bảo toàn vào Câu lệnh ReDim .
- Cuối cùng, mã đầy đủ của chúng ta sẽ là thế này.
2581
- Bây giờ, nếu chúng ta Chạy đoạn code này thì kết quả sẽ như thế này. Vì vậy, chúng ta sẽ “ ReDim Preserve ” chiều cuối cùng của mảng 2D trong Excel VBA.. Bây giờ, phương pháp tiếp theo sẽ chỉ cho bạn cách “ ReDim Preserve ” và thay đổi kích thước cả hai chiều của mảng.
Đọc thêm: VBA để trở thành duy nhất Giá trị từ Cột thành Mảng trong Excel (3 Tiêu chí)
Bài đọc tương tự
- Cách đặt tên cho mảng bảng trong Excel (Với Các bước đơn giản)
- VBA Excel để đọc tệp CSV thành mảng (4 ví dụ lý tưởng)
- Cách chuyển đổi phạm vi thành mảng trong ExcelVBA (3 cách)
- Excel VBA: Loại bỏ các bản sao khỏi một mảng (2 ví dụ)
2. ReDim Giữ nguyên cả hai kích thước Mảng 2D trong Excel VBA
Trong phương pháp cuối cùng này, chúng tôi sẽ chỉ cho bạn các bước để thay đổi kích thước và “ ReDim Preserve ” của mảng 2D . Ở đây, chúng ta sẽ sử dụng hàm VBA Transpose để thay đổi kích thước giới hạn dưới của mảng. Nếu chúng ta cố thay đổi kích thước giới hạn dưới của mảng trong phương thức đầu tiên, thì chúng ta sẽ thấy lỗi “ Chỉ số dưới nằm ngoài phạm vi ”. Bây giờ, không cần phải chần chừ thêm nữa, hãy xem cách chúng ta có thể khắc phục sự cố này và đạt được mục tiêu của mình.
Các bước:
- Đầu tiên, như thể hiện trong phương thức đầu tiên , mở cửa sổ Mô-đun .
- Thứ hai, thêm các dòng mã sau vào mã đầu tiên.
1223
- Hơn nữa, mã cho phương thức cuối cùng trông như thế này.
9739
Phân tích mã VBA
- Đầu tiên, chúng tôi đang gọi Thủ tục phụ “ ReDim_Preserve_2D_Array_Both_Dimensions ” .
- Sau đó, các mã còn lại cho đến hàm VBA Transpose giống như trong mã đầu tiên.
- Ở đây, chúng tôi đang chuyển đổi mảng.
- Sau đó, chúng tôi đang tăng giới hạn trên của mảng.
- Sau đó, chúng tôi chuyển đổi mảng một lần nữa. Do đó, cuối cùng nó sẽ thay đổi giới hạn dưới.
- Tiếp theo, chúng tôi nhập các giá trị cho mảng đã thay đổi kích thước trong khigiữ nguyên dữ liệu cũ.
- Cuối cùng, chúng tôi ghi các giá trị vào phạm vi ô C6:E9 .
- Sau rằng, như thể hiện trong phương thức đầu tiên , Chạy mã này.
- Vì vậy, chúng ta có thể hình dung cách mã duy trì mảng 2D bằng cách sử dụng “ ReDim Preserve ” và chức năng VBA Transpose .
Đọc thêm: VBA để chuyển mảng trong Excel (3 phương pháp)
Những điều cần nhớ
- ReDim Preserve không thể thay đổi giới hạn dưới của mảng. Để làm như vậy, chúng ta cần sử dụng hàm Transpose .
- Chúng ta chỉ có thể sử dụng ReDim trên các mảng động.
Kết luận
Chúng tôi đã chỉ cho bạn hai cách nhanh chóng để “ ReDim Preserve ” một mảng 2D trong Excel VBA. Nếu bạn gặp phải bất kỳ vấn đề nào liên quan đến các phương pháp này hoặc có bất kỳ phản hồi nào cho tôi, vui lòng bình luận bên dưới. Ngoài ra, bạn có thể truy cập trang web của chúng tôi ExcelWIKI để biết thêm các bài viết liên quan đến Excel. Cảm ơn vì đã đọc, hãy tiếp tục xuất sắc!