Hướng dẫn cách viết thuộc tính OFFSET trong VBA Excel
#Hướng #dẫn #cách #viết #thuộc #tính #OFFSET #trong #VBA #Excel
Offset là một hàm thú vị trong Excel. Và trong VBA chúng ta cũng có Offset dưới dạng 1 thuộc tính của đối tượng Cells, Range. Trong bài viết này chúng ta cùng tìm hiểu về thuộc tính OFFSET trong VBA Excel nhé.
Cách viết thuộc tính Offset của đối tượng Range, Cells
Bản chất của Offset là việc di chuyển từ 1 vị trí này tới vị trí khác. Gồm có điểm gốc và điểm đến. Điểm đến sẽ cách điểm gốc bao nhiêu dòng, bao nhiêu cột, và theo hướng nào.
Offset trong VBA được viết như sau:
Expression có thể là 1 Range (vùng ô) hoặc 1 Cells (ô)
Khi viết thuộc tính Offset thì kèm theo dấu chấm, sau đó gọi tên thuộc tính theo cú pháp
Tham số bên trong Offset được viết trong cặp dấu ngoặc đơn, gồm:
- Số dòng di chuyển: Nếu số >0 thì di chuyển xuống dưới so với điểm gốc, nếu số <0 thì di chuyển lên trên so với điểm gốc. Nếu = 0 thì giữ nguyên dòng
- Số cột di chuyển: Nếu số >0 thì di chuyển sang phải so với điểm gốc, nếu số <0 thì di chuyển sang trái so với điểm gốc. Nếu = 0 thì giữ nguyên cột
Ví dụ1 : Range(“A1”).Offset(0, 1)
=> Điểm gốc là ô A1, di chuyển 0 dòng và 1 cột về bên phải => Kết quả là tham chiếu tới ô B1
Ví dụ 2: Cells(5, 3).Offset(-1, 2)
=> Điểm gốc là ô C5 (dòng 5 cột 3), di chuyển 1 dòng lên phía trên, 2 cột về bên phải => Kết quả tham chiếu tới ô E4 (dòng 4 cột 5)
* Chú ý:
Để biết kết quả của Range, Cells có phương thức Offset sẽ di chuyển tới đâu, lấy chính số dòng, số cột cộng trực tiếp tương ứng với tham số bên trong Offset. Kết quả của số dòng, cột mới chính là tọa độ của điểm mới sẽ di chuyển tới.
Ví dụ 1:
Range(“A1”) = Cells(1, 1)
Range(“A1”).Offset(0, 1) = Cells(1 + 0, 1 + 1) = Cells(1, 2) là dòng 1 cột 2, chính là ô B1
Ví dụ 2:
Cells(5, 3).Offset(-1, 2) = Cells(5 – 1, 3 + 2) = Cells(4, 5) là dòng 4 cột 5, chính là ô E4
Ứng dụng hàm Offset
Trong bảng danh sách nhân viên, hãy xác định mức thưởng cho nhân viên biết: Nếu nhân viên ở bộ phận kinh doanh có mức thưởng là 500:
Câu lệnh VBA là:
Trong ví dụ này, ta thấy câu lệnh:
bien_DoiTuong.Offset(0, 1).Value = Range(“F2”).Value
Câu lệnh này có ý nghĩa là kết quả được lấy vào vị trí ô tương ứng với ô bien_DoiTuong, cách ô đó 1 cột (chính là cột Mức thưởng) theo giá trị tại ô F2.
Khi sử dụng cú pháp For Each, chúng ta phải căn cứ vào biến đối tượng, kết quả phải có liên quan tới biến đối tượng. Do vậy dùng hàm Offset để di chuyển tới ô kết quả tương ứng theo ô Biến đối tượng.
Chuyên mục: Học Excel
Cảm ơn các bạn đã theo dõi Thủ Thuật trên đây là những chia sẻ của chúng tôi về Hướng dẫn cách viết thuộc tính OFFSET trong VBA Excel. Hy vọng bài viết này sẽ giúp ích được cho bạn. Trân trọng !!!