Cách dùng tham chiếu trong Macro Recorder (VBA)
Trong bài này chúng ta sẽ học cách sử dụng hai loại tham chiếu khi Recorder Macro, đó là tham chiếu tương đối và tham chiếu tuyệt đối.
Mặc định khi bạn Record một Macro thì đó là tham chiếu tuyệt đối (Absolute References). Tuy nhiên có một số trường hợp bạn phải sử dụng tham chiếu tương đối (Relative References) thì mới giải quyết được bài toán.
Và sau đây mình sẽ giúp bạn phân biệt hai loại tham chiếu này khi record một macro trong Excel VBA.
* Lưu ý: Nếu bạn chưa biết cách sử dụng tính năng Record Macro thì hãy tham khảo bài viết Record Macro trong Excel nhé. Đây là điều bắt buộc bởi mình sẽ không giải thích quá nhiều các bước để record macro.
Bài viết này được đăng tại [free tuts .net]
1. Tham chiếu tuyệt đối khi Record Macro
Tham chiếu tuyệt đối là nó sẽ tham chiếu cố định đến một ô trong Excel.
Bạn hãy thực hiện ví dụ dưới đây để hiểu rõ hơn nhé.
Bài toán: Hãy tạo một macro bằng công cụ Record Macro có chức năng nhập vào ba giá trị (Sales, Production, Logistics) vào 3 ô (B3, B4, B5). Yêu cầu là khi chạy macro thì luôn luôn áp dụng cho ba ô này.
1. Đầu tiên hãy qua tab Developer và click Record Macro.
2. Tiếp theo, hãy chọn ô B3 và nhập chữ "Sales" rồi nhấn Enter, lúc này ô B4 sẽ được chọn.
3. Nhập "Production" và nhấn Enter, lúc này ô B5 được chọn.
4. Nhập "Logistics" và nhấn Enter.
Kết quả là bạn sẽ có một bảng dữ liệu như sau:
5. Click vào Stop Recording nằm trong tab Developer.
6. Bạn hãy xóa dữ liệu đã nhập ở trên nhé.
7. Chọn một ô bất kì (giả sử mình chọn ô D3), sau đó chạy Macro vừa tạo thì kết quả là ba ô B3, B4, B5 nhận lại giá trị cũ.
Lý do là trình Record đang sử dụng tham chiếu cố định tuyệt đối đến 3 ô đó, nên dù bạn đang ở ô nào đi nữa thì macro vẫn tham chiếu đến ô mà nó đã được thiết lập.
2. Tham chiếu tương đối khi Record Macro
Tham chiếu tương đối là sẽ tham chiếu đến ô tỉ lệ với ô mà bạn đang chọn.
Yêu cầu: Quay lại bài toán ở phần 1. Mình muốn khi chạy macro thì 3 giá trị (Sales, Production, Logistics) sẽ được nhập vào 3 ô tính từ vị trí ô mà mình đang chọn chứ không phải cố định như vậy.
Đọc yêu cầu thôi ta sẽ nghĩ đến ngay là sẽ sử dụng tham chiếu tương đối để giải quyết.
1. Chọn Use Relative References nằm trong tab Developer. Đây là tùy chọn giúp Excel hiểu là sử dụng tham chiếu tương đối.
2. Chọn bất kì một ô nào (giả sử mình chọn ô B8)
3. Click vào Record Macro nằm trong tab Developer.
2. Tiếp theo, nhập chữ "Sales" rồi nhấn Enter, lúc này ô B9 sẽ được chọn.
3. Nhập "Production" và nhấn Enter, lúc này ô B10 được chọn.
4. Nhập "Logistics" và nhấn Enter.
Kết quả:
5. Click vào Stop Recording trong tab Developer.
6. Chọn một ô bất kì (giả sử mình chọn ô D4), sau đó chạy macro vừa record thì kết quả sẽ như sau:
Như vậy mà macro đã áp dụng cho ba ô D4, D5, D6. Tức nó tính từ ô mà mình đã chọn là B4 chứ không phải cố định như ở phần 1.
Qua bài này mình đã hướng dẫn xong cách sử dụng tham chiếu tương đối và tham chiếu tuyệt đối khi thực hiện tạo macro thông qua trình Macro Recorder. Bài này mình xin dừng tại đây, hẹn gặp lại bạn ở bài tiếp theo nhé.