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

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 chỉ dùng Excel, bạn sẽ thường xuyên phải OT đến mỗi kỳ làm báo cáo, stress vì sai dữ liệu do nhập thủ công, hay gặp vấn đề các hàm load chậm do dữ liệu quá nặng,...

Có lẽ bạn đã từng nghe ở đâu đó về công cụ lập trình VBA trên Excel, 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,...

Nhưng bạn không dám nghĩ một ngày nào đó mình sẽ dùng VBA bởi vì mình không biết lập trình, sửa code và gỡ lỗi mã. Tin mình đi, bạn hoàn toàn có thể thành thạo công cụ này ngay cả khi không giỏi Excel, không biết lập trình với khóa học VBAG01: Tuyệt đỉnh VBA - Tự động hóa Excel với lập trình VBA tại Gitiho.

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 khiến mọi thao tác thủ công trên Excel gần như được loại bỏ hoàn toàn. 

Hãy nhấn vào Học thử hoặc Đăng ký ngay để cảm nhận sự “vi diệu” mà VBA mang lại cho công việc của bạn nhé!

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