Để có thể liên kết dữ liệu trong Excel, chúng ta thường sử dụng chức năng Hyperlink, hàm Hyperlink. Tuy nhiên những chức năng này chỉ đơn thuần làm một công việc là dẫn link để liên kết tới đích đến. Trong một vài trường hợp chúng ta muốn kết hợp thêm nhiều chức năng khác cùng trong 1 đường link, ví dụ như link tới 1 sheet ẩn, link tới 1 vị trí đã bị ẩn thì cách làm trên không đáp ứng được yêu cầu. Vậy chúng ta hãy cùng tìm hiểu giải pháp là sử dụng VBA để tạo MENU liên kết nhiều chức năng.
Xem nhanh
Trước khi đi vào thực hiện viết code trong VBA, chúng ta nên làm quen với việc mô tả quy trình công việc cần làm trước, khi đó việc viết code, tổ chức lệnh trong VBA cũng trở nên rõ ràng hơn, dễ hiểu hơn.
Quy trình liên kết dữ liệu có thể được mô tả như sau:
Mục đích chính là CHỌN tới địa chỉ đích. Tại địa chỉ đích này sẽ bao gồm:
Trong nội dung này, chú ý một số nguyên tắc sau:
Khi tạo liên kết, chúng ta lưu ý khi có link dẫn đi thì cần có link để quay trở lại. Việc này sẽ giúp liên kết đảm bảo đường đi của liên kết có tính 2 chiều, giúp việc đi đến – quay trở lại được thực hiện dễ dàng.
Việc tạo link quay trở lại cũng dựa trên nguyên tắc giống Link đến, nhưng link quay trở lại có thể kèm theo các chức năng như ẩn sheet đích, ẩn các ô đang chọn. Khi đó chúng ta lưu ý về trình tự thực hiện để tránh xung đột.
Sau khi đã nắm được quy trình rồi, chúng ta mở cửa sổ VBA, tạo mới 1 Module và thực hiện viết các Sub liên kết.
Nếu bạn chưa biết cách mở cửa sổ VBA thì có thể tham khảo bài viết sau:
Bắt đầu với Excel Macros và lập trình VBA
Ví dụ chúng ta có một file Excel, trong đó gồm các Sheet:
Trong Sheet MENU, chúng ta sẽ tổ chức các link như sau:
Trong đó sheet Create đã được ẩn đi, nhưng chúng ta có thể gọi ra sheet này chỉ với thao tác bấm vào dòng Tạo mới Ủy nhiệm chi.
Cách thực hiện như sau:
Bước 1: Tạo các Shapes hình chữ nhật, trong mỗi shape sẽ viết tên tương ứng với các địa chỉ cần link.
Tham khảo: Hướng dẫn thao tác với các đối tượng đồ họa trong Excel
Trong các Shape này chúng ta chỉ cần lấy tên đường link, còn màu của shape, đường viền chúng ta sẽ loại bỏ đi (No Fill, No Line)
Bước 2: Trong Module vừa tạo (trong cửa sổ VBA) tạo Sub để liên kết cho từng Shape
Ví dụ: Sub Link_Create_UNC để liên kết tới Sheet Create như sau:
Trong đó:
Bước 3: Gán Macro cho Shape Tạo mới UNC
Tại Shape Tạo mới UNC trên MENU, chúng ta bấm chuột phải rồi chọn Assign Macro, chọn tới macro Link_Create_UNC vừa tạo được ở bước 2
Bây giờ chúng ta thử bấm vào Shape đã gán macro sẽ thấy macro được thực hiện: Sheet Create được hiện ra trên thanh Sheet Tab và đồng thời chọn tới Sheet này. Giao diện sheet tạo mới UNC như sau:
Tiếp tục như vậy chúng ta sẽ tạo liên kết tới từng Sheet theo các Shape trong MENU
Tương tự với liên kết đến các Sheet, chúng ta cũng thực hiện các bước như sau:
Bước 1: Tạo Shape cho lệnh quay trở về MENU, ví dụ Shape có chữ Đóng trong sheet Create
Bước 2: Tạo sub Link_MENU như sau:
Trong đó:
Bước 3: Gán Macro cho Shape thực hiện lệnh đóng UNC
Như vậy là chúng ta đã có thể hoàn tất một vòng đường link dữ liệu trong VBA rồi. Các bạn có thể thực hành thêm cho các sheet khác bằng cách tải file mẫu tại địa chỉ: http://bit.ly/2DKiTUI
Chúc các bạn thành công!
Xem thêm: