Tạo chỉ mục cho các Sheet trong Workbook
Nếu bạn đã tốn quá nhiều thời gian trong một workbook (bảng
tính) với rất nhiều worksheet (trang tính), bạn sẽ cảm thông được
sự khó khăn trong việc tìm kiếm một trang tính nào đó.
Khi đó, có lẽ ta nên lập một chỉ mục các trang tính đang có để
thuận tiện cho việc điều hướng trong bảng tính. Bằng cách sử
dụng một chỉ mục các trang tính sẽ cho phép bạn nhanh chóng và dễ dàng điều hướng trong bảng
tính, chỉ bằng một cú nhấp chuột sẽ đưa bạn đến chính xác nơi bạn muốn đến mà không có sự
fuss. Bạn có thể tạo một chỉ mục trong một vài cách: bằng tay, tự động tạo ra bởi mã VBA, hoặc
là sử dụng trình đơn tùy chọn theo ngữ cảnh (thậm chí có thể dùng các hàm Macro4 – không
trình bày ở đây). Tạo chỉ mục thủ công
Cách này rất dễ làm, bạn chỉ cần chèn mới một worksheet và đăt cho nó một cái tên, ví
dụ như tên là Index. Sau đó, bạn nhận vào tên của các worksheet có trong workbook và
tạo các siêu liên kết (hyperlink) đến các worksheet tương ứng với tên mà bạn nhập.
Để tạo hyperlink bạn chọn tên sheet, sau đó vào Insert | chọn Hyperlink tại nhóm
Links [E2003: Insert | Hyperlinks] hoặc nhấn phím tắt là Ctrl+K để mở hộp thoại Insert
Hyperlink. Hộp thoại Insert Hyperlink
Chọn Place in This Document và chọn tên Sheet muốn kết nối tới. Nhấn nút OK để
For Each wSheet In Worksheets
If wSheet.Name <> Me.Name Then
lCount = lCount + 1
With wSheet
.Range("A1").Name = "Start" & wSheet.Index
.Hyperlinks.Add Anchor:=.Range("A1"), Address:="", SubA
ddress:= _
"Index", TextToDisplay:="Back to Index"
End With
Me.Hyperlinks.Add Anchor:=Me.Cells(lCount, 1), Address:="",
SubAddress:= _
"Start" & wSheet.Index, TextToDisplay:=wSheet.Name
End If
Next wSheet
End Sub Nhấn tổ hợp phím Alt+Q để thoát VBE và trở về cửa sổ bảng tính, sau đó lưu bảng tính
lại. Để chạy đoạn mã vừa tạo, bạn dùng chuột chọn sang worksheet khác trong
workbook và sau đó chọn lại worksheet Index để kích hoạt sự kiện Worksheet_Activate.
Lưu ý rằng, đoạn mã sẽ các đặt tên (Name) cho các ô A1 ở mỗi worksheet kèm theo số
chỉ mục của worksheet trong bảng tính (worksheet đầu tiên có chỉ mục là 1, kế đó là 2,
3…. n). Điều này bảo đảm rằng ô A1 trên mỗi trang tính có một tên khác nhau. Nếu ô
A1 trên worksheet của bạn đã được đặt tên, bạn nên cân nhắc đến việc thay đổi ô A1
trong đoạn mã sang một địa chỉ khác phù hợp hơn. Thêm thuộc tính cho workbook
Application.CommandBars("Cell").Controls("Sheet Index").Dele
te
On Error GoTo 0
Set cCont = Application.CommandBars("Cell").Controls.Add _
(Type:=msoControlButton, Temporary:=True)
With cCont
.Caption = "Sheet Index"
.OnAction = "IndexCode"
End With
End Sub
Tiếp theo, bạn vào Insert | Module và nhập vào đoạn mã sau: