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

Nội dung được viết bởi Ngọc Diệp

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: Giới thiệu về hàm OFFSET và các cách kết hợp hàm OFFSET trong Excel

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

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.

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: Hướng dẫn cách dùng hàm OFFSET để tạo danh sách động 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.

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

Để 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.

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é.

💥 SIÊU SALE MÙA EURO - SĂN KHÓA HỌC CÙNG GITIHO 💥

  • 👉 GIẢM TRỰC TIẾP 60% HỌC PHÍ, đồng giá các khóa học 199K - 299K - 399K
  • 👉 Áp dụng cho 200+ khóa học bán chạy nhất trên nền tảng Gitiho
  • 👉 Ưu đãi chỉ có hiệu lực với 100 đơn hàng thanh toán đầu tiên.

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

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

0 thảo luận

@ 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
Giấy phép mạng xã hội số: 588, cấp bởi Bộ thông tin và truyền thông