DEV Community

Long Nguyễn Xuân
Long Nguyễn Xuân

Posted on

Tạo mục lục trong excel và Personal macro workbook

bài gồm 2 phần

  1. Tạo mục lục trong excel bằng VBA
  2. 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
Enter fullscreen mode Exit fullscreen mode
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
Enter fullscreen mode Exit fullscreen mode

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"

  1. tạo 1 file excel bất kỳ, chọn Files > Options > Customize Ribbon
  2. Checked vào menu Developer
  3. mở Ribbons > Developer > Record Macro
  4. chọn "Store macro in: = Personal Macro Workbook

xem hình
Image description

Image description

Image description

Image description

OK giờ nó đã hiển thị ra rồi, lưu vba cần dùng vào đây thôi.

Image description

Heroku

Simplify your DevOps and maximize your time.

Since 2007, Heroku has been the go-to platform for developers as it monitors uptime, performance, and infrastructure concerns, allowing you to focus on writing code.

Learn More

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Explore a sea of insights with this enlightening post, highly esteemed within the nurturing DEV Community. Coders of all stripes are invited to participate and contribute to our shared knowledge.

Expressing gratitude with a simple "thank you" can make a big impact. Leave your thanks in the comments!

On DEV, exchanging ideas smooths our way and strengthens our community bonds. Found this useful? A quick note of thanks to the author can mean a lot.

Okay