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
Hàm OFFSET trong VBA được viết như sau:
expression.Offset(_RowOffset_,_ColumnOffset_)
Trong đó:
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
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.
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é.
Nếu công việc của bạn liên quan nhiều đến quản lý, phân tích dữ liệu và làm báo cáo trên bảng tính thì giỏi Excel thôi chưa đủ. Nếu biết thêm về VBA sẽ giúp bạn tiết kiệm tối đa thời gian làm việc nhờ làm báo cáo tự động, phân tích và xử lý số liệu chính xác tuyệt đối, đặc biệt công cần lọ mọ sửa thủ công,…
Tất tần tật những kiến thức từ cơ bản đến nâng cao về cách sử dụng VBA trong Excel sẽ được đề cập trong khóa học VBAG01: Tuyệt đỉnh VBA - Tự động hóa Excel với lập trình VBA tại Gitiho
Hãy nhấn vào Học thử hoặc Đăng ký ngay!