Cách lấy giá trị tên sheet trong excel

Trong quá trình xử lý một file nhiều sheet, việc lấy tên và danh sách các sheet giúp kiểm tra và quản lý các sheet dễ dàng hơn, đặc biệt là khi bạn làm việc và tổng hợp dữ liệu từ nhiều sheet. Việc lấy danh sách các sheet một cách tự động giúp tiết kiệm thời gian và công sức của bạn.

Lấy tên sheet hiện tại

Cách lấy giá trị tên sheet trong excel

Để lấy tên sheet hiện tại bạn dùng hàm sau:

=MID(CELL(“filename”), FIND(“]”,CELL(“filename”))+1, LEN(CELL(“filename”))-FIND(“]”, CELL(“filename”)))

Hoặc hàm sau:

=RIGHT(CELL(“filename”), LEN(CELL(“filename”))-FIND(“]”,CELL(“filename”)))

Để liệt kê các sheet có trong file exel một cách tự động

Để liệt kệ tự động thì chỉ có một cách là bạn sử dụng VBA. Để mở VBA thì bấm tổ hợp phím: ALT+F11

Hoặc mở Visual Basic trên thẻ Developer.

Cách mở thẻ Developer như hướng dẫn tại đây của Microsoft Office

Cách lấy giá trị tên sheet trong excel

cửa sổ VBA hiện ra. Các bạn chọn thẻ Insert => Module 

Sau đó bạn copy mã sau vào và bấm Run để chạy

Private Sub CreateTableOfContents()
Dim wsSheet As Worksheet
Dim ws As Worksheet
Dim Counter As Long

On Error Resume Next
Set wsSheet = Sheets("Mucluc")
'Kiem tra su ton tai cua Sheet
On Error GoTo 0
If wsSheet Is Nothing Then
'Neu chua co thi them vao vi tri dau tien cua Workbook
Set wsSheet = ActiveWorkbook.Sheets.Add(Before:=Worksheets(1))
wsSheet.Name = "Mucluc"
End If

With wsSheet
.Cells(2, 1) = "DANH SACH CAC SHEET"
.Cells(2, 1).Name = "Index"
.Cells(4, 1).Value = "STT"
.Cells(4, 2).Value = "Ten Sheet"
End With

'Merge Cell
With Range("A2:B2")
.Merge
.HorizontalAlignment = xlCenter
.Font.Bold = True
End With

'Set ColumnWidth
With Columns("A:A")
.ColumnWidth = 8
.HorizontalAlignment = xlCenter
End With

With Range("A4")
.HorizontalAlignment = xlCenter
.Font.Bold = True
End With

Columns("B:B").ColumnWidth = 30
With Range("B4")
.HorizontalAlignment = xlCenter
.Font.Bold = True
End With

Counter = 1
For Each ws In Worksheets
If ws.Name <> wsSheet.Name Then
'Gan gia tri cot thu tu
wsSheet.Cells(Counter + 4, 1).Value = Counter
'Tao lien ket
wsSheet.Hyperlinks.Add Anchor:=wsSheet.Cells(Counter + 4, 2), _
Address:="", _
SubAddress:=ws.Name & "!A1", _
ScreenTip:=ws.Name, _
TextToDisplay:=ws.Name
'Them nut Quay ve Sheet Muc luc tai moi Sheet
With ws
.Hyperlinks.Add Anchor:=.Range("H1"), Address:="", SubAddress:="Index", TextToDisplay:="Quay ve"
End With
Counter = Counter + 1
End If
Next ws
Set xlSheet = Nothing
End Sub

Nội dung chính

  • 1 Hướng dẫn lấy ra danh sách tên các Sheet hiện có trong Excel
    • 1.1 Lấy danh sách tên các Sheet trong Excel
    • 1.2 Tạo hàm lấy tên của Sheet hiện tại
    • 1.3 Kết luận

Trong bài viết này, Gitiho.com sẽ hướng dẫn các bạn lấy ra danh sách tên của các Sheet có trong File Excel một cách nhanh chóng bằng việc sử dụng VBA

Hướng dẫn lấy ra danh sách tên các Sheet hiện có trong Excel

Việc lấy ra danh sách được tên các Sheet hiện có trong File Excel sẽ giúp cho việc kiểm tra và nắm bắt được các Sheet trong File Excel một cách rõ ràng hơn. Trường hợp File của bạn có ít Sheet thì có thể chưa phát sinh nhiều vấn đề nhưng khi số lượng Sheet ngày càng nhiều thì việc nắm bắt được các sheet sẽ trở nên rất cần thiết. Việc lấy ra danh sách tên các Sheet là bước đầu để từ đó có thể giúp cho việc tạo mục lục cho File Excel của bạn.

Sử dụng VBA để tạo mục lục tự động trong Excel

Lấy danh sách tên các Sheet trong Excel

Để làm điều đó, ta mở trình soạn thảo VBA lên và có dòng Code như sau, ở đây trong File mình có 7 Sheet, thực hiện lặp qua các Sheet này và lần lượt lấy tên các Sheet đó vào Excel

Sub DS_Ws()
Dim j As Integer

For j = 1 To Sheets.Count
Sheet7.Cells(j + 1, 1).Value = Sheets(j).Name
Next j
End Sub

Cách lấy giá trị tên sheet trong excel

Biến j được khai báo thuộc kiểu Integer  ở trên sẽ chạy từ Sheet đầu tiên tới Sheet cuối cùng trong File Excel của bạn và sau đó thực hiện ghi vào Excel tên của Sheet đó (Sheets(j).Name)

Vừa rồi ta đã thực hiện được 1 Sub để lấy ra danh sách tên của các Sheet hiện có trong Excel một cách khá nhanh chóng, Nếu như bạn muốn mình tạo 1 Function trong VBA để lấy ra tên sheet thì sao.

Tạo hàm lấy tên của Sheet hiện tại

Nếu như bạn muốn tạo 1 Function để lấy ra tên Sheet hiện tại, ta có Code khá đơn giản như sau:

Function MySheet() As String
MySheet = ActiveSheet.Name
End Function

Cách lấy giá trị tên sheet trong excel

Hàm tự tạo này đơn giản chỉ là lấy ra tên Sheet hiện tại (ActiveSheet.Name) và sẽ không cần truyền đối số cho hàm.

Kết luận

Qua bài viết này, Gitiho.com bạn đã nắm được cách để lấy ra danh sách tên của các Sheet trong File Excel của mình cũng như tạo được 1 Function để lấy ra tên Sheet hiện tại bạn đang làm việc một cách nhanh chóng.

Với VBA bạn còn làm được rất nhiều điều thú vị và hữu ích khác giúp nâng cao hiệu suất trong công việc cũng như đem lại hiệu quả cao hơn khi làm việc với Excel. Tham khảo khoá học VBA101 – Tự động hoá Excel với lập trình VBA cho người mới bắt đầu.


Sử dụng Msgbox trong Excel VBA– hướng dẫn đầy đủ

VBA là gì? một số ví dụ ứng dụng VBA trong công việc

Một số Code VBA để tìm dòng cuối cùng có dữ liệu trong Excel

hướng dẫn cách tạo công cụ tìm kiếm nhanh trong Excel bằng VBA

Sử dụng Autofilter hiệu quả hơn với VBA