bài gồm 2 phần
- Tạo mục lục trong excel bằng VBA
- Personal macro workbook
tạo mục lục trong excel bằng VBA
1. Alt+F11 > Insert New Module
2. copy&paste code vba bên dưới bỏ vào
3. Alt+F8 > tận hưởng
Sub CreateTableOfContents()
Dim ws As Worksheet
Dim tocSheet As Worksheet
Dim rowNum As Integer
Dim linkCell As Range
' Check if "Table of Contents" sheet already exists, delete it if so
On Error Resume Next
Set tocSheet = ThisWorkbook.Worksheets("Table of Contents")
If Not tocSheet Is Nothing Then
Application.DisplayAlerts = False
tocSheet.Delete
Application.DisplayAlerts = True
End If
On Error GoTo 0
' Add a new sheet for the TOC
Set tocSheet = ThisWorkbook.Worksheets.Add
tocSheet.Name = "Table of Contents"
' Add header
With tocSheet
.Cells(1, 1).Value = "Table of Contents"
.Cells(1, 1).Font.Bold = True
.Cells(1, 1).Font.Size = 14
End With
' Initialize row number for TOC entries
rowNum = 3
' Loop through all sheets and add to TOC
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> "Table of Contents" Then
tocSheet.Cells(rowNum, 1).Value = ws.Name
tocSheet.Hyperlinks.Add Anchor:=tocSheet.Cells(rowNum, 1), _
Address:="", SubAddress:="'" & ws.Name & "'!A1", TextToDisplay:=ws.Name
rowNum = rowNum + 1
End If
Next ws
' Auto-fit columns
tocSheet.Columns("A:A").AutoFit
' Return to the TOC sheet
tocSheet.Activate
MsgBox "Table of Contents created successfully!", vbInformation
End Sub
Personal Macro Workbook
vì việc gửi 1 cái file excel có chứa VBA, đôi khi không được phép (vì vấn đề bảo mật), khách hàng họ sẽ không được phép mở 1 cái file excel có chứa VBA, các hệ thống IT của doanh nghiệp cũng chặn loại file này.
Trong excel có 1 cái rất hay gọi là Personal Macro Workbook PERSONAL.XLSB
, chúng ta có thể lưu các đoạn vba thường dùng trong này,
hôm nay (2024-12-16) tìm thử nó, để lưu 1 đoạn macro mới thấy trong Office 365, thì nó không được hiển thị ra, mà phải làm 1 cái mẹo
mẹo "hiển thị PERSONAL.XLSB
"
- tạo 1 file excel bất kỳ, chọn
Files > Options > Customize Ribbon
- Checked vào menu
Developer
- mở
Ribbons > Developer > Record Macro
- chọn "Store macro in: = Personal Macro Workbook
OK giờ nó đã hiển thị ra rồi, lưu vba cần dùng vào đây thôi.
Top comments (0)