Hướng dẫn tham chiếu mảng động trong VBA

Đối tượng Range là đối tượng được sử dụng nhiều nhất trong việc viết code trên VBA. Nhưng hầu hết các phạm vi dữ liệu trong các mảng sẽ thay đổi sau mỗi lần chúng ta cập nhật dữ liệu vào mảng đó. Như vậy việc kiểm soát độ dài, độ rộng của mảng dữ liệu trong điều kiện mảng đó luôn biến động là nhiệm vụ rất quan trọng, cần phải nắm vững khi chúng ta làm việc trên VBA. Sau đây chúng ta cùng tìm hiểu một vài ví dụ về kiểm soát tham chiếu mảng động (Trapping dynamic range): Ví dụ 1: Tham chiếu tới dòng cuối có chứa dữ liệu trong 1 cột
  • Điểm đầu cố định, điểm cuối thay đổi: Tham chiếu tới vùng bảng từ cột A tới cột C, từ dòng 1 tới dòng cuối có chứa dữ liệu ở cột A
Sub Test01() Dim lr as long lr=range(“A” & rows.count).end(xlup).row Range(“A1:C” & lr)……. End Sub
  • Điểm đầu và điểm cuối đều thay đổi theo dòng cuối
Sub Test02() Dim lr as long lr=Cells(Rows.Count, 1).End(xlUp).Row Range(“A” & lr & “:” & “C” & lr)……. End Sub
Ví dụ 2: Tham chiếu tới cột cuối có chứa dữ liệu
Sub LastUsedCol() Dim lc As Integer lc=Range(“IV1”).End(xlToLeft).Column Cells(1, lc).Interior.Color=vbBlue End Sub
Ví dụ 3: Tham chiếu tới vị trí giao điểm giữa dòng cuối và cột cuối cùng có chứa dữ liệu
Sub LastUsedCol2() Dim lc As Integer        ‘Cot cuoi Dim lrAs Integer        ‘Dong cuoi lr=Sheet1.Range(“A” & Rows.Count).End(xlUp).Row lc=Range(“IV1”).End(xlToLeft).Column ‘Tô màu vàng cho toàn bộ vùng từ Dòng 1, cột cuối cho tới Dòng cuối, cột cuối Range(Cells(1, lc), Cells(lr, lc)).Interior.Color=vbYellow End Sub
Ví dụ 4: Xác định đúng vị trí dòng cuối có chứa dữ liệu bằng thuộc tính Find
Sub FinditAll() Dim lc As Long Dim lr As Long ‘Xác định chính xác dòng cuối bằng thuộc tính Find
lc=Cells.Find(“*”, , , , xlByRows, xlPrevious).Column
lr=Cells.Find(“*”, , , , xlByRows, xlPrevious).Row
‘Thông báo kết quả MsgBox “Row ” & lr & “: Column ” & lc
End Sub
Ví dụ 5: Sử dụng thuộc tính Resize
Thuộc tính Resize​ sẽ định hình lại kích thước của 1 vùng đặc trưng. (Thuộc tính) sẽ trả về là đối tượng vùng (range) thay cho vùng trước đó, khi thuộc tính chưa tác động.
Cú pháp của thuộc tính là expression.Resize(RowSize, ColumnSize) Expression – Đây là đối số bắt buột và là đối tượng range chịu tác động của thuộc tính Resize RowSize : Số dòng – là biến tùy chọn và là số dòng của vùng mới.Nếu đối số bị bỏ qua, thì hai vùng trước & sau thuộc tính tác động có số dòng như nhau.
ColumnSize: số lượng cột – là biến tùy chọn và là số cột của vùng mới. Nếu đối số bị bỏ qua, thì hai vùng trước & sau tác động của thuộc tính có số cột như nhau
Sub TestResize()
Range(“A1”, Range(“A” & Rows.Count).End(xlUp)).Resize(, 5).Interior.Color=vbMagenta
End Sub
 Để có thể hiểu sâu hơn về các nội dung này, các bạn cần luyện tập nhiều và tìm hiểu thêm kiến thức về Excel VBA liên quan tới việc xác định các điểm giới hạn trong 1 vùng
Chúc các bạn học tốt cùng Học Excel online!

Tác giả: duongquan211287

· · ·

Khóa học mới xuất bản

© Học Excel Online. All rights reserved.