Hỏi về cách tạo mục lục cho các Sheet trong excel

Liên hệ QC

Hai Xuan

Thành viên mới
Tham gia
12/10/08
Bài viết
5
Được thích
0
Em co một Workbook với nhiều sheet, mà mỗi sheet lại là dữ liệu cùng loại nhưng của các tỉnh, thành khác nhau.
Em muốn tạo ra mục lục cho các sheet này trong một sheet mới mà khi kích vào link thì sẽ đến được sheet mong muốn.
Vậy anh chị làm ơn chỉ giúp em nhé.
Liệu có thể link đến các sheet trong các Workbook khác nhau không ?
Cảm ơn rất rất nhiều %#^#$
 
1) Theo tôi thì chịu khó nhập tên mỗi tỉnh vào một ô và link thôi.
2) Link đến các sheet trong các Workbook.
Sao bạn không tự làm thử? Tôi làm thử và link được đến sheet hiện hành.
 
Code lấy tên sheet và Hyperlink

Bạn tạo thêm một sheet Index, sau đó paste đoạn code trên vào chạy.
Đoạn code này dùng sự kiện active --> nên sau khi paste bạn chọn một sheet khác rồi
quay trở lại sheet Index

PHP:
Private Sub Worksheet_Activate()
Dim wSheet As Worksheet
Dim M As Long
M = 1
    With Me
        .Columns(1).ClearContents
        Cells(1, 1) = "Index"
    
    End With
    
    For Each wSheet In Worksheets
        If wSheet.Name <> Me.Name Then
        M = M + 1
        With wSheet
            .Range("H1").Name = "Start" & wSheet.Index ' de tao name cho o H1
            .Hyperlinks.Add Anchor:=.Range("H1"), Address:="", SubAddress:="Index", TextToDisplay:="Back to Index" ' tao Hyperlink ve sheet Index
        End With
            Me.Hyperlinks.Add Anchor:=Me.Cells(M, 1), Address:="", SubAddress:="Start" & wSheet.Index, TextToDisplay:=wSheet.Name  ' tao Hyperlink tai sheet Index
        End If
        Next wSheet
End Sub
 

File đính kèm

  • Book1.xls
    24.5 KB · Đọc: 234
Lần chỉnh sửa cuối:
Đoạn code trên chưa chạy được 100% vì nút "Back to Index" không có hiệu lực.

Mình xin sửa lại như sau:

Mã:
Private Sub Worksheet_Activate()
Dim wSheet As Worksheet
Dim M As Long
M = 1
With Me
   .Columns(1).ClearContents
  [COLOR=red] .Cells(1, 1) = "DANH SACH TEN SHEET"
   .Cells(1, 1).Name = "Index"[/COLOR]
    End With
  
For Each wSheet In Worksheets
    If wSheet.Name <> Me.Name Then
    M = M + 1
    With wSheet
       .Range("H1").Name = "Start" & wSheet.Index
       .Hyperlinks.Add Anchor:=.Range("H1"), Address:="", SubAddress:="Index", TextToDisplay:="Back to Index"
    End With
        Me.Hyperlinks.Add Anchor:=Me.Cells(M, 1), Address:="", SubAddress:="Start" & wSheet.Index, TextToDisplay:=wSheet.Name
    End If
 ext wSheet
End Sub
Bạn tham khảo thêm file nhé
Thân
 

File đính kèm

  • hyperlink.xls
    24.5 KB · Đọc: 212
Web KT
Back
Top Bottom