Tạo mục lục trong tự động trong excel

Liên hệ QC

tmtien261

Thành viên mới
Tham gia
17/12/09
Bài viết
8
Được thích
0
Nhờ các Pro chỉ giáo:
tmtien261 có nguyện vọng tạo một sheet 1: "Mục lục" tự động đánh số trang trong các sheet sau. Cụ thể:
1. Tại sheet 2 có 2 trang (gồm 2 mục: Mục A ở trang 1 và Mục B ở trang 2).
2. Tại sheet 3 có 2 trang (gồm 3 mục: Mục C và D ở trang 1 và Mục E ở trang 2).

Tôi muốn: Tại sheet 1 (Mục lục) tự động cập nhật thành:
- Mục A ..............................trang 1
- Mục B ..............................trang 2.
- Mục C...............................trang 3 (Trang 1 của sheet 2 thành trang 3).
- Mục D...............................trang 3 (Trang 1 của sheet 2 thành trang 3).
- Mục E ..............................trang 4 (Trang 2 của sheet 2 thành trang 3).

Nếu tại sheet 2 và 3 thêm các nội dung làm tăng số lượng trang thì ở Sheet 1 sẽ tự động cập nhật.
 
Nhờ các Pro chỉ giáo:
tmtien261 có nguyện vọng tạo một sheet 1: "Mục lục" tự động đánh số trang trong các sheet sau. Cụ thể:
1. Tại sheet 2 có 2 trang (gồm 2 mục: Mục A ở trang 1 và Mục B ở trang 2).
2. Tại sheet 3 có 2 trang (gồm 3 mục: Mục C và D ở trang 1 và Mục E ở trang 2).

Tôi muốn: Tại sheet 1 (Mục lục) tự động cập nhật thành:
- Mục A ..............................trang 1
- Mục B ..............................trang 2.
- Mục C...............................trang 3 (Trang 1 của sheet 2 thành trang 3).
- Mục D...............................trang 3 (Trang 1 của sheet 2 thành trang 3).
- Mục E ..............................trang 4 (Trang 2 của sheet 2 thành trang 3).

Nếu tại sheet 2 và 3 thêm các nội dung làm tăng số lượng trang thì ở Sheet 1 sẽ tự động cập nhật.
Có thể dùng cột phụ để giải quyết bài toán này.
Bạn nên đưa ví dụ lên xem thử như thế nào nhé.
 
tmtien261 !
Nhờ các Pro chỉ giáo: Có "hàm" nào xác định được một nội dung nào đó đang ở trang bao nhiêu trong excel không?
 
Cảm ơn bạn đã trả lời ! Xong tmtien261 cần là xác định các nội dung nào đó đang ở trang nào kia? Cụ thể: Tôi có 1 sheet có 3 trang (a4 print view) tại mỗi trang có các nội dung khác nhau (Ví dụ trang 1: A; trang 2: B; trang 3: C), có cách nào tự động xác định được và hiển thị nội dung B đang ở trang 2 không? Nếu chèn các dòng sau nội dung A làm nội dung B xuống trang 3 thì vẫn hiển thị nội dung B đang ở trang 3. Thanks !
 
Cảm ơn bạn đã trả lời ! Xong tmtien261 cần là xác định các nội dung nào đó đang ở trang nào kia? Cụ thể: Tôi có 1 sheet có 3 trang (a4 print view) tại mỗi trang có các nội dung khác nhau (Ví dụ trang 1: A; trang 2: B; trang 3: C), có cách nào tự động xác định được và hiển thị nội dung B đang ở trang 2 không? Nếu chèn các dòng sau nội dung A làm nội dung B xuống trang 3 thì vẫn hiển thị nội dung B đang ở trang 3. Thanks !

Chỉ cần chỉnh code của anh Cadafi lại thành 1 UDF là sử dụng được ngay:

Mã:
Function PageNumber() As Integer
   Dim VPC As Integer, HPC As Integer
   Dim VPB As VPageBreak, HPB As HPageBreak
   Dim NumPage As Integer
   If ActiveSheet.PageSetup.Order = xlDownThenOver Then
       HPC = ActiveSheet.HPageBreaks.Count + 1
       VPC = 1
   Else
       VPC = ActiveSheet.VPageBreaks.Count + 1
       HPC = 1
   End If
   NumPage = 1
   For Each VPB In ActiveSheet.VPageBreaks
       If VPB.Location.Column > ActiveCell.Column Then Exit For
       NumPage = NumPage + HPC
   Next VPB
   For Each HPB In ActiveSheet.HPageBreaks
       If HPB.Location.Row > ActiveCell.Row Then Exit For
       NumPage = NumPage + VPC
   Next HPB
   PageNumber = NumPage
End Function

Ví dụ bạn muốn lấy trang hiện hành bạn gõ như sau:
=PageNumber() enter là xong
Bạn xem thêm file ví dụ nhé.
 

File đính kèm

Lần chỉnh sửa cuối:
Cảm ơn domfoowear !
- Nhưng Function bạn cho chạy không ổn trên môi trường w7.
- Tôi đã tải chạy thử nhưng lúc thì chạy đúng trang của bạn đã làm nhưng lúc thì hiển thị: #VALUE!.
- Chương trình không tự cập nhật mà để cập nhật phải vào công thức và Enter.
- Khi chèn trang mới bằng công cụ Break Page thi hiển thị ngay #VALUE!.
Bạn có giải pháp nào hay hơn ko, xin đươc chỉ giáo tiếp.
 
em tạo mực lục cho các sheet ma không hiểu sao cứ báo lỗi
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&quot.Name = "Start" & wSheet.Index
.Hyperlinks.Add Anchor:=.Range("H1&quot, 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
em gửi file dây nhờ mọi người giúp em với. Em mới bắt đầu làm nên không rành lắm
 

File đính kèm

Web KT

Bài viết mới nhất

Back
Top Bottom