Để 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.
Bạn đang xem: Hướng dẫn tạo treeview trong excel
Quy trình liên kết dữ liệu
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:
1. Link đến
Mục đích chính là CHỌN tới địa chỉ đích. Tại địa chỉ đích này sẽ bao gồm:
Tên sheetÔ / vùng ô nào trong sheet đóNhững chức năng khác kèm theo (nếu có)
Trong nội dung này, chú ý một số nguyên tắc sau:
Nếu Sheet đang ẩn thì phải mở ẩn trước, sau đó mới chọn tới Sheet đó được.Nếu ô đang ẩn thì phải mở ẩn trước, sau đó mới chọn tới ô đó được.Nếu không nói cụ thể ô nào trong Sheet thì vẫn có thể chọn tới Sheet đó đượcNếu Sheet không tồn tại thì liên kết sẽ lỗi
2. Link quay lại
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.
Xem thêm: Hướng Dẫn Backup Iphone Bằng 3Utools, 3Utools Là Gì
Cách viết lệnh liên kết đa chức năng trong VBA
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
Tạo link đến trong VBA
Ví dụ chúng ta có một file Excel, trong đó gồm các Sheet:
MENU: Nơi quản lý danh sách các Sheet cần Liên kết.Create: mục đích để tạo mới 1 phiếu Ủy nhiệm chi (UNC)Data: mục đích để quản lý danh sách các phiếu UNCUNC: Để in Ủy nhiệm chiDS_NguoiChuyen: Danh sách người chuyển tiềnDS_NguoiNhan: Danh sách người nhận tiền
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.
Xem thêm: Thể Loại: Người Bản Xứ Là Gì ? Nghĩa Của Từ Bản Xứ Trong Tiếng Việt
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 đó:
Sheet2 là Code Name của sheet CreateSheet2.Visible là thuộc tính ẩn/hiện của Sheet, trong đó chúng ta chọn xlSheetVisible để cho sheet đó được hiện ra (nếu bị ẩn thì sẽ hiện)Sheet2.Select là thuộc tính lựa chọn, điều này có nghĩa là chọn tới Sheet2 sau khi sheet đó đã ở chế độ hiện
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ạo liên kết quay trở lại 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 đó:
AciveSheet là sheet đang hoạt động, đang mở. Tại Sheet đang làm việc chúng ta sẽ đặt lệnh quay trở lại MENUActiveSheet.Visible = xlSheetHidden tức là ẩn sheet đang hoạt động đi. Khi quay trở lại MENU đồng thời chúng ta sẽ ẩn sheet đó điSheet7 là code name của sheet MENUSheet7.select là chọn tới Sheet 7 (MENU)
Bước 3: Gán Macro cho Shape thực hiện lệnh đóng UNC
Chuyên mục: Kiến thức