Hướng dẫn cách viết hàm OFFSET trong VBA Excel hiệu quả

Nhã Linh
Nhã Linh
Apr 05 2021

Trong Excel, hàm OFFSET có chức năng trả về tham chiếu hoặc kết hợp với các hàm khác để tính toán có điều kiện. Vậy còn hàm OFFSET trong VBA thì được dùng như thế nào? Hãy để Gitiho hướng dẫn các bạn cách viết code VBA Excel cho hàm OFFSET trong bài viết dưới đây nhé.

Xem thêm: Hướng Dẫn Hàm OFFSET và các kết hợp hàm của nó trong Excel, công thức ví dụ

Tuyệt đỉnh VBA - Viết code trong tầm tay

Cách viết hàm OFFSET trong VBA dựa vào đối tượng Range, Cells

Hàm OFFSET trong VBA là hàm gì?

Về cơ bản, hàm OFFSET trong VBAhàm di chuyển từ vị trí này sang vị trí khác. Việc di chuyển này yêu cầu có điểm gốc và điểm đến, trong đó điểm đến cách điểm gốc bao nhiêu dòng và cột, cách theo hướng nào.

Cách viết hàm OFFSET trong VBA

Hàm OFFSET trong VBA được viết như sau:

expression.Offset(_RowOffset_,_ColumnOffset_)

Trong đó:

  • expression là đối tượng di chuyển, có thể là 1 ô hoặc 1 vùng ô.
  • RowOffset là số dòng di chuyển. Nếu RowOffset > 0 thì di chuyển xuống dưới điểm gốc và ngược lại. Nếu RowOffset = 0 thì giữ nguyên dòng.
  • ColumnOffset là số cột di chuyển. Nếu ColumnOffset > 0 thì di chuyển xuống sang phải điểm gốc và ngược lại. Nếu ColumnOffset = 0 thì giữ nguyên cột.

Xem thêm: Hướng dẫn cách viết hàm Offset và cách ứng dụng của hàm Offset

Chúng ta có ví dụ các công thức hàm OFFSET trong VBA như sau:

Range(“A1”).Offset(0, 1)

Trong công thức code VBA Excel trên, điểm gốc là ô A1, di chuyển 0 dòng và 1 cột về bên phải điểm gốc. Vì vậy, kết quả là tham chiếu tới ô B1 trong trang tính Excel.

Cells(5, 3).Offset(-1, 2)

Trong công thức code VBA Excel này, đ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. Từ đó ta có kết quả tham chiếu tới ô E4 (dòng 4 cột 5).

Lưu ý: Để biết điểm đến theo hàm OFFSET trong VBA, các bạn hãy cộng trực tiếp số dòng, cột di chuyển vào điểm gốc trong code VBA Excel này. Như vậy, các bạn sẽ tìm được tọa độ mới nơi Excel trả về kết quả.

Ví dụ như dưới đây:

Range(“A1”) nghĩa là Cells(1, 1)

Dựa vào đó, chúng ta tính được tọa độ mới của công thức hàm OFFSET trong VBA dưới đây:

Range(“A1”).Offset(0, 1) nghĩa là Cells(1 + 0, 1 + 1) = Cells(1, 2). Vậy là tọa độ mới ở dòng 1 cột 2, chính là ô B1 trong trang tính Excel.

Xem thêm: Những phím tắt có chức năng chỉnh sửa hàng, cột tối ưu trong Excel

Ứng dụng của hàm OFFSET trong VBA Excel

Chúng ta cùng tìm hiểu một ứng dụng của hàm OFFSET trong VBA giúp kế toán viên tính thưởng cho các nhân viên công ty như sau.


Để xác định mức thưởng chính xác cho các nhân viên, kế toán viên sử dụng code VBA Excel dưới đây:
Sub Thuong_BP_KinhDoanh()
Dim bien_BoPhan As Range
 Set bien_BoPhan = Range("B2:B8")
Dim bien_DoiTuong As Range
For Each bien_DoiTuong In bien_BoPhan
 If bien_DoiTuong.Value = Range("E2").Value Then
    bien_DoiTuong.Offset(0, 1).Value = Range("F2").Value
 End If
Next bien_DoiTuong
End Sub
Ta thấy trong công thức code có chứa hàm OFFSET trong VBA tại dòng
bien_DoiTuong.Offset(0, 1).Value = Range("F2").Value

Câu lệnh này có ý nghĩa như thế nào? Hàm OFFSET trong công thức code VBA Excel trên giúp Excel trả kết quả của code vào vị trí ô tương ứng với ô bien_DoiTuong, cách ô đó 1 cột (chính là cột Thưởng) theo giá trị tại ô F2.

Xem thêm: Những loại hàm, công thức Excel được sử dụng trong kế toán tính lương

Tổng kết

Chúng ta vừa tìm hiểu cách viết hàm OFFSET trong VBA, quả thật là một thủ thuật rất hữu ích phải không nào? Không chỉ có hàm OFFSET mà chúng ta còn vận dụng được rất nhiều hàm khác vào code VBA Excel. Nếu các bạn muốn tìm hiểu những hàm đó là gì thì hãy nhanh tay truy cập blog Gitiho để đón đọc các bài viết của chúng mình nhé. Bên cạnh đó, hãy đăng kí khóa học Tuyệt đỉnh VBA để thành thạo bí kíp viết code VBA Excel nhé.

Hy vọng các bạn sẽ áp dụng thủ thuật thành công!

Hãy tham khảo các bài viết khác về chủ đề VBA Excel tại đây bạn nhé:

Hướng dẫn tìm kiếm và lọc dữ liệu tự động bằng Textbox trong Excel VBA

Hướng dẫn hiện thẻ Developer để ghi Macro hoặc viết code VBA trong Excel

Unicode tiếng việt khi viết trong VBA

Hướng dẫn cách viết hàm VBA trong Excel

Cách sử dụng hàm MsgBox() để tạo hộp thông báo với VBA

0/5 - (0 bình chọn)

0/5 - (0 bình chọn)

Bài viết liên quan

Cách ứng dụng hàm INT và MOD cho lễ tân và các công việc khác

Cách ứng dụng hàm INT và MOD cho lễ tân và các công việc khác

Hướng dẫn cách tách địa chỉ ra khỏi chuỗi

Hướng dẫn cách tách địa chỉ ra khỏi chuỗi

CÁCH TÍNH ĐIỂM TRUNG BÌNH VÀ XẾP LOẠI TRONG EXCEL (KÈM BÀI TẬP)

CÁCH TÍNH ĐIỂM TRUNG BÌNH VÀ XẾP LOẠI TRONG EXCEL (KÈM BÀI TẬP)

Hướng dẫn kiểm tra giá trị trùng lặp cực đơn giản trên Excel 2010, 2013, 2016, 2019

Hướng dẫn kiểm tra giá trị trùng lặp cực đơn giản trên Excel 2010, 2013, 2016, 2019

Cách cộng, trừ ngày tháng năm trong Excel để tính số ngày siêu nhanh cho kế toán

Cách cộng, trừ ngày tháng năm trong Excel để tính số ngày siêu nhanh cho kế toán

Hướng dẫn 4 cách bôi đen trong Excel đơn giản và nhanh chóng

Hướng dẫn 4 cách bôi đen trong Excel đơn giản và nhanh chóng

@ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội