Sử dụng VBA để tạo mục lục tự động trong Excel

Chia sẻ bài viết này:
  •  
  •  
  •  
  •  
  •  
  •  
  •   
  •   

Khi làm việc trong 1 File Excel có rất nhiều Sheets, nhiều khi việc di chuyển tới Sheet mà chúng ta cần gặp nhiều khó khăn và mất nhiều thời gian. Trong bài viết này của Học Excel Online sẽ đưa ra cho bạn 1 phương án để giúp quản lý hiệu quả được các Sheets trong File Excel của mình.

Sử dụng VBA để tạo mục lục tự động trong Excel

Cách làm thủ công

Nếu như công việc của bạn dùng nhiều tới Excel thì chắc các bạn đã biết cách sử dụng Hyperlink để tạo ra liên kết giữa các Sheets, bằng cách ấn chuột phải vào ô muốn gán liên kết và thực hiện Hyperlink (phím tắt là Ctrl + K)

Với số lượng Sheets trong File ít thì không sao, tuy nhiên nếu File của bạn có hàng chục thậm chí hàng trăm thì với cách làm thủ công trên sẽ tốt không ít thời gian. Để có thể giải quyết được vấn đề này thì bạn tham khảo cách làm bằng cách dùng VBA sau đây

Cách dùng VBA

Ở đây chúng ta vẫn sử dụng Hyperlink, tuy nhiên thay vì phải làm Hyperlink tới từng Sheet một thì chúng ta sẽ chạy một vòng lặp để VBA có thể tạo Hyperlink tự động. Đối với những bạn đã có kiến thức cơ bản về VBA rồi thì chắc các dòng Code dưới mình nghĩ sẽ không làm khó được các bạn.

Đoạn Code trên có thể hiểu như sau: Chúng ta sẽ cho 1 vòng lặp chạy qua các Sheets mà chúng ta muốn Hyperlink tới (Vì là Sheet Activate của mình đang là MUC_LUC nên mình không cần tạo mục lục cho Sheet MUC_LUC nên mới có dòng IF đó), biến k có kiểu Byte ở đây bạn có thể hiểu nó như là một biến chạy, sau mỗi vòng lặp thì k sẽ tăng lên 1, biến cel thuộc kiểu đối tượng Range cũng sẽ thay đổi tương ứng và lấy ra tên của từng Sheet khi vòng lặp chạy qua.

  • Vòng lặp thứ nhất thì k = 1, cel = Sheet1.Range(“A5”);
  • Vòng lặp thứ 2 thì k = 2, cel = Sheet1.Range(“A6”);
  • Cứ như thế cho tới hết tất cả các Sheets

cel.Hyperlinks.Add Anchor:=cel, Address:=””, SubAddress:=cel & “!A1”, TextToDisplay:=cel.Value

Dòng Code trên sẽ thực hiện gắn Hyperlink tới các Sheets, từ đó sẽ tạo cho ta mục lục gồm danh sách các Sheets được gán Hyperlink. Mỗi khi bạn thêm 1 Sheet mới thì bạn chỉ cần chạy lại Code, mục lục của bạn sẽ được cập nhật. Bạn có thể thực hiện Record Macro để lấy ra dòng Code đó.

Học Excel Online hy vọng qua bài viết này các bạn đã nắm được cách tạo ra mục lục giúp liên kết tới các Sheets trong File Excel. Ngoài ra bạn cũng thể tuỳ biến thêm đoạn Code trên để có thể phục vụ tốt hơn vào mục đích của mình.



Chia sẻ bài viết này:
  •  
  •  
  •  
  •  
  •  
  •  
  •   
  •