Khi tìm hiểu về viết code với đối tượng Cells, Range trong VBA, chúng ta hay thấy sử dụng thuộc tính Resize. Vậy Resize có ý nghĩa và các dụng thế nào? Hãy cùng Học Excel Online tìm hiểu cách viết thuộc tính RESIZE trong VBA Excel nhé.
Xem nhanh
Resize có tác dụng là tạo ra 1 vùng mới dựa trên điểm gốc. Resize kết hợp với Offset trong VBA sẽ giống như hàm Offset mà bạn thường dùng trong Excel.
Hàm Offset trong Excel mà chúng ta dùng gồm các thành phần:
Do đó mục đích sử dụng thuộc tính Resize chính là thay đổi độ rộng của 1 vùng. Kết quả là 1 vùng mới với kích thước có thể mở rộng hoặc thu hẹp theo ý muốn so với vùng ban đầu.
Thuộc tính Resize trong VBA được viết như sau:
Để tìm hiểu ý nghĩa của thuộc tính Resize, chúng ta hãy xem một số ví dụ sau:
Ví dụ 1: Resize từ 1 ô
Range(“A1”).Resize(5, 3).Select
Có nghĩa là: Thay đổi kích thước của ô A1 thành 5 dòng và 3 cột
=> Kết quả là vùng A5:C5 (thành 15 ô, thay vì chỉ 1 ô) được chọn (thuộc tính Select phía sau có nghĩa là được chọn)
Ví dụ 2: Resize từ 1 vùng
Range(“B3:C5”).Resize(2, 2).Select
Có nghĩa là: Vùng B3:C5 (gồm 3 hàng, 2 cột) sẽ thay đổi thành 1 vùng gồm 2 hàng, 2 cột
=> Kết quả là vùng B3:C4 (điểm gốc vẫn giữ nguyên là ô B3) được chọn (thuộc tính Select phía sau có nghĩa là được chọn)
Ví dụ 3: Resize kết hợp Offset
Range(“A1”).Offset(2,2).Resize(10, 4).Select
(lưu ý Offset bao giờ cũng viết trước Resize)
Có nghĩa là: Vùng ô A1 được di chuyển thêm 2 dòng, 2 cột. Tại vị trí mới di chuyển tới được thay đổi kích thước thành 1 vùng có 10 dòng, 4 cột
=> Kết quả:
Resize được sử dụng khá phổ biến, có thể kèm theo Offset. Một số ví dụ tiêu biểu như:
1. Resize được dùng nhiều trong việc xác định 1 vùng mà bạn chưa biết rõ phạm vi vùng đó cụ thể là bao nhiêu ô, tùy thuộc vào giá trị thu được của 2 biến RowSize và ColumnSize.
2. Khi bạn muốn copy dữ liệu từ 1 vùng để đưa vào 1 vị trí luôn biến động (ví dụ như dòng trống phía dưới dòng cuối cùng có dữ liệu của 1 bảng).
3. Khoanh vùng 1 bảng tính dựa trên các điểm giới hạn về dòng, cột và 1 điểm làm mốc.
Hy vọng các bạn sẽ ứng dụng tốt kiến thức này vào trong việc học VBA và ứng dụng VBA trong công việc!
Ngoài ra các bạn có thể tham khảo thêm các bài viết sau:
Hướng dẫn cách sử dụng vòng lặp For Each trong VBA Excel