Có thể bạn biết rằng Excel không hoàn toàn hỗ trợ tạo lập “bảng tính 3D”. Chẳng hạn, nếu bạn cần tham chiếu nội dung của trang tính khác, bạn bắt buộc phải ghi rõ tên trang tính đó trong công thức của mình. Đây không phải là vấn đề gì khó – ngoại trừ việc bạn muốn sao chép công thức này cho tất cả các trang tính còn lại. Khi đó các công thức sẽ bị trùng lặp khi đều cùng tham chiếu về trang tính ban đầu.
Để tránh gặp phải tình trạng đó, ta cần sử dụng một hàm VBA (có tên SHEETOFFSET) để gọi tên từng trang tính mà không bị trùng lặp. Chẳng hạn, bạn có thể tham chiếu ô A1 của trang tính phía trước bằng công thức sau:
=SHEETOFFSET(-1,A1)
Sau đó bạn có thể sao chép công thức này lại cho tất cả các trang tính khác và việc tham chiếu tự động này sẽ tiếp diễn mà không gặp phải bất cứ sự trùng lặp nào.
Mã lệnh VBA cho hàm này sẽ có nội dung như sau:
Function SHEETOFFSET(offset, Ref)
‘ Returns cell contents at Ref, in sheet offset
Application.Volatile
With Application.Caller.Parent
SHEETOFFSET = .Parent.Sheets(.Index + offset) _
.Range(Ref.Address).Value
End With
End Function
Cách sử dụng hàm SHEETOFFSET
Để sử dụng hàm này, bạn chỉ cần sao chép nó và dán vào phần mô-đun chạy VBA. Sau đó, bạn có thể sử dụng công thức sau:
=SHEETOFFSET(2,C1)
Lưu ý: Hãy để ý xem bảng tính của bạn có chứa các trang không được coi là trang tính hay không (ví dụ như trang chứa bảng biểu). Nếu như sau ký tự đầu tiên kết quả tham chiếu cho ra trang không phải là trang tính thì sẽ có một thông báo lỗi xuất hiện.
Học excel cấp tốc để kiếm việc dễ dàng