Tạo mục lục danh sách các Sheet trong Excel

Rate this post

Trong Excel, việc di chuyển giữa một vài Sheet khá dễ dàng và không mất nhiều thời gian đối với người dùng. Tuy nhiên, trong trường hợp Workbook có nhiều Sheet thì thực sự rất khó và tốn thời gian để chọn Sheet làm việc. Và có 1 cách sử dụng phím tắt giúp người dùng di chuyển qua lại giữa các Sheet đó là: Ctrl-Page Up (Tiến lên 1 Sheet, Sheet 1 sang Sheet 2) và Ctrl-Page Down (Lùi về 1 Sheet, Sheet 3 về Sheet 2).

Một cách khác được khá nhiều người sử dụng đó là dùng 1 Sheet chính và tạo danh mục các Sheet dạng mục lục trong Sheet chính và liên kết đến đây khi click vào. Đây là cách giúp người sử dụng làm việc dễ dàng hơn cũng như di chuyển giữa các Sheet hay quay lại Sheet chính. Tuy nhiên, mọi người vẫn làm công việc này bằng phương pháp thủ công. Cuuhotinhoc.com sẽ giới thiệu với các bạn 1 phương pháp nhanh chóng thực hiện công việc này, đó là sử dụng VBA.

Tao muc luc danh sach cac sheet trong excel

Chức năng của hàm này như sau:

  • Kiểm tra Sheet mục lục đã có chưa, trường hợp chưa có thì sẽ tạo mới và được chèn vào vị trí đầu tiên
  •  Thiết lập độ rộng của cột
  • Đánh số thứ tự cho các ô và chèn tên Sheet vào các ô
  • Chèn liên kết tương ứng đến các Sheet
  • Chèn một liên kết để quay lại Sheet Mucluc
  • Định dạng các vùng dữ liệu

Để tạo Macro này, các bạn thực hiện các bước sau:

1. Khởi động Microsoft Excel.

2. Nhấn tổ hợp phím ALT + F11 để khởi động Visual Basic Editor. Trong Menu Insert chọn Module

Tao muc luc danh sach cac sheet trong excel

3. Copy đoạn mã sau vào:

Private Sub CreateTableOfContents()
Dim wsSheet As Worksheet
Dim ws As Worksheet
Dim Counter As Long

On Error Resume Next
Set wsSheet = Sheets(“Mucluc”)
‘Kiem tra su ton tai cua Sheet
On Error GoTo 0
If wsSheet Is Nothing Then
‘Neu chua co thi them vao vi tri dau tien cua Workbook
Set wsSheet = ActiveWorkbook.Sheets.Add(Before:=Worksheets(1))
wsSheet.Name = “Mucluc”
End If

With wsSheet
.Cells(2, 1) = “DANH SACH CAC SHEET”
.Cells(2, 1).Name = “Index”
.Cells(4, 1).Value = “STT”
.Cells(4, 2).Value = “Ten Sheet”
End With

‘Merge Cell
With Range(“A2:B2”)
.Merge
.HorizontalAlignment = xlCenter
.Font.Bold = True
End With

‘Set ColumnWidth
With Columns(“A:A”)
.ColumnWidth = 8
.HorizontalAlignment = xlCenter
End With

With Range(“A4”)
.HorizontalAlignment = xlCenter
.Font.Bold = True
End With

Columns(“B:B”).ColumnWidth = 30
With Range(“B4″)
.HorizontalAlignment = xlCenter
.Font.Bold = True
End With

Counter = 1
For Each ws In Worksheets
If ws.Name <> wsSheet.Name Then
‘Gan gia tri cot thu tu
wsSheet.Cells(Counter + 4, 1).Value = Counter
‘Tao lien ket
wsSheet.Hyperlinks.Add Anchor:=wsSheet.Cells(Counter + 4, 2), _
Address:=””, _
SubAddress:=ws.Name & “!A1”, _
ScreenTip:=ws.Name, _
TextToDisplay:=ws.Name
‘Them nut Quay ve Sheet Muc luc tai moi Sheet
With ws
.Hyperlinks.Add Anchor:=.Range(“H1″), Address:=””, SubAddress:=”Index”, TextToDisplay:=”Quay ve”
End With
Counter = Counter + 1
End If
Next ws
Set xlSheet = Nothing
End Sub

4. Chạy Marco bạn vừa tạo. Như vậy, bạn đã có 1 danh sách chứa tất cả các Sheet có trên Workbook hiện tại và được đưa vào trong Sheet Mucluc. Bạn có thể dễ dàng di chuyển tới bất kỳ Sheet nào để làm việc.

Hi vọng bài viết Tạo mục lục danh sách các Sheet trong Excel giúp ích cho các bạn!

Tạo mục lục danh sách các Sheet trong Excel

5 (100%) 1 vote