Tạo mục lục trong Excel

  • Thread starter Le Duc Binh
  • Ngày gửi
L

Le Duc Binh

Sơ cấp
13/5/09
2
0
1
Tp Hồ Chí Minh
Em có cái này cũng hay hay, nhặt được từ mấy đứa bạn, ko biết bác nào có chưa, nếu có rồi thì thôi, còn chưa thì sử dụng cũng OK lắm.

Tạo mục lục các Sheet trong Excel 2003


Đây là một thủ thuật mà mình đánh giá là...4 sao cho tính tiện dụng...

Vấn đề:
Khi làm việc với một tập tin Excel (Worbook) có nhiều worksheet (bảng tính), các bạn sẽ gặp nhiều khó khăn khi di chuyển giữa các bảng tính này.

Giải pháp:
Chúng ta sẽ tạo ra một Sheet mới với tên là MụcLục. Sau đó thêm một đoạn code vào Sheet này để tạo mục lục tự động.
{ad_200x200_right}
Các bước thực hiện:
1. Trở về Sheet đầu tiên. Vào Insert > Worksheet. Đặt tên của Sheet này lại thành MụcLục hay để nguyên tùy thích.
2. Right-click lên thẻ của Sheet này chọn View Code.
3. Copy tất cả đoạn Code này vào:

PHP Code:
Private Sub Worksheet_Activate()
Dim wSheet As Worksheet
Dim M As Long
M = 1
With Me
.Columns(1).ClearContents
.Cells(1, 1) = "INDEX"
.Cells(1, 1).Name = "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
.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
Next wSheet
End Sub

Private Sub Worksheet_Activate()
Dim wSheet As Worksheet
Dim M As Long
M = 1
With Me
.Columns(1).ClearContents
.Cells(1, 1) = "INDEX"
.Cells(1, 1).Name = "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
.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
Next wSheet
End Sub
4. Nhấn Alt + Q và Save lại.
5. Từ Excel, vào Tool > Macro > Security. Trong hộp thoại này, chọn mức Low. Vì trong file Excel của bạn có dùng Macro, nên đôi khi mức Macro security ở mức high, đoạn lệnh của bạn sẽ không có tác dụng. Nếu bạn chọn Mediup, bạn sẽ được nhắc là chạy macro không. Trong trường hợp này, bạn chọn Enable Macro để thấy tác dụng.
5. Nhấn Ctrl + W để đóng lại Workbook và mở lại Workbook này.
Đến đây, khi nhấp vào Sheet có tên là MụcLục, bạn sẽ thấy danh sách các bảng tính hiện ra. Nhấp vào Sheet nào mà bạn muốn di chuyển nhanh đến để làm việc....
 
Khóa học Quản trị dòng tiền
L

lekimngan

Guest
4/3/09
1
0
0
k62/5 Thai Phien-Dnang
cảm ơn Anh nhiều nhé! nhưng em cài đặt mà không được sao ấy! Save lại được rồi nhưng đến đoạn vào tool để tìm Tool > Macro > Security thì không dc
 
N

nguyen lam ngoc

Trung cấp
mình được mấy pac bên GPE bảo nếu chọn chọn mức "low" dễ bị mấy ông virut luộc tài liệu lắm. mình phải để mức trên "low" là "medium" ý. an toàn hơn.:angel:
 
V

vuminh1601

Guest
28/9/07
25
0
1
hn
Mục lục tên các sheet

Em có cái này cũng hay hay, nhặt được từ mấy đứa bạn, ko biết bác nào có chưa, nếu có rồi thì thôi, còn chưa thì sử dụng cũng OK lắm.

Tạo mục lục các Sheet trong Excel 2003


Đây là một thủ thuật mà mình đánh giá là...4 sao cho tính tiện dụng...

Vấn đề:
Khi làm việc với một tập tin Excel (Worbook) có nhiều worksheet (bảng tính), các bạn sẽ gặp nhiều khó khăn khi di chuyển giữa các bảng tính này.

Giải pháp:
Chúng ta sẽ tạo ra một Sheet mới với tên là MụcLục. Sau đó thêm một đoạn code vào Sheet này để tạo mục lục tự động.
{ad_200x200_right}
Các bước thực hiện:
1. Trở về Sheet đầu tiên. Vào Insert > Worksheet. Đặt tên của Sheet này lại thành MụcLục hay để nguyên tùy thích.
2. Right-click lên thẻ của Sheet này chọn View Code.
3. Copy tất cả đoạn Code này vào:

PHP Code:
Private Sub Worksheet_Activate()
Dim wSheet As Worksheet
Dim M As Long
M = 1
With Me
.Columns(1).ClearContents
.Cells(1, 1) = "INDEX"
.Cells(1, 1).Name = "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
.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
Next wSheet
End Sub

Private Sub Worksheet_Activate()
Dim wSheet As Worksheet
Dim M As Long
M = 1
With Me
.Columns(1).ClearContents
.Cells(1, 1) = "INDEX"
.Cells(1, 1).Name = "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
.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
Next wSheet
End Sub
4. Nhấn Alt + Q và Save lại.
5. Từ Excel, vào Tool > Macro > Security. Trong hộp thoại này, chọn mức Low. Vì trong file Excel của bạn có dùng Macro, nên đôi khi mức Macro security ở mức high, đoạn lệnh của bạn sẽ không có tác dụng. Nếu bạn chọn Mediup, bạn sẽ được nhắc là chạy macro không. Trong trường hợp này, bạn chọn Enable Macro để thấy tác dụng.
5. Nhấn Ctrl + W để đóng lại Workbook và mở lại Workbook này.
Đến đây, khi nhấp vào Sheet có tên là MụcLục, bạn sẽ thấy danh sách các bảng tính hiện ra. Nhấp vào Sheet nào mà bạn muốn di chuyển nhanh đến để làm việc....

Viết CODE chi cho mệt. Chuột phải vào vùng đầu tiên tên các Sheet sẽ hiện lên tất cả các sheet để mình chọn mà.
Mọi người thử đi nhé.
 
L

Le Thi Hanh

Guest
Sao mình làm kông được, có bạn nào biết chỉ dùm minh nha.
 
L

Le Thi Hanh

Guest
---------------------------
Microsoft Visual Basic
---------------------------
Compile error:

Expected End Sub
---------------------------
OK Help
---------------------------
No bao lỗi vậy là do dâu vậy
 
V

vuminh1601

Guest
28/9/07
25
0
1
hn

Đính kèm

  • list sheet.rar
    99.1 KB · Lượt xem: 547
G

giotsuongmai87

Guest
28/11/09
4
0
0
38
Đa nang
mình cũng thử roi nhung mỗi lần mở lại mục lục thì nó cứ hiện lên khung:
The cell or chart you are trying to change is protected and therefore readonly
.........
mình ok xong thì hiện lên khung:
macro error at cell
[book1]XL4Poppy!C27


vậy làm sao các bạn giúp mình với!!!.....
 

Xem nhiều