Lấy danh sách tên các Sheet từ file excel
cảm ơn trước!
Bác nào biết cách lấy tên các sheet của một file excel (bằng VBA) mà không cần mở file đó không xin chỉ giáo? Xin cảm ơn trước!
Bạn nghiên cứu code này xem:
Function GetSheetsNames(WBName As String) As Collection
'Vao menu ToolsReferences va check cac muc:
'-Microsoft ActiveX Data Object X.X Library
'-Microsoft ADO Ext. X.X for DLL and Security
Dim objConn As ADODB.Connection, objCat As ADOX.Catalog, Col As New Collection, tbl As ADOX.Table
Dim sConnString As String, sSheet As String
sConnString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & WBName & ";" & "Extended Properties=Excel 8.0;"
Set objConn = New ADODB.Connection
objConn.Open sConnString
Set objCat = New ADOX.Catalog
Set objCat.ActiveConnection = objConn
For Each tbl In objCat.Tables
sSheet = tbl.Name
sSheet = Application.Substitute(sSheet, "'", "")
sSheet = Left(sSheet, InStr(1, sSheet, "$", 1) – 1)
On Error Resume Next
Col.Add sSheet, sSheet
On Error GoTo 0
Next tbl
Set GetSheetsNames = Col
objConn.Close
Set objCat = Nothing
Set objConn = Nothing
End Function
Sub Test()
Dim Col As Collection, Book As String, i As Long
Book = "D:ExcelBook1.xls"
Set Col = GetSheetsNames(Book)
For i = 1 To Col.Count
MsgBox Col(i)
Next i
End SubChú ý: Bạn phải làm thêm 1 động tác nữa trước khi chạy code:
– Trong cửa sổ VBE, vào menu ToolsReferences và check vào 2 mục:Microsoft ActiveX Data Object X.X Library
Microsoft ADO Ext. X.X for DLL and Security
– D:ExcelBook1.xls ở đây chỉ là ví dụ, nếu bạn muốn Get SheetName cho file nào thì hãy sửa lại đường dẩn cho phù hợp
– Trong Sub Test() , ngay đoạn Book = "D:ExcelBook1.xls" bạn có thể sửa lại thành FileDialog cho linh hoạt hơn
www.giaiphapexcel.com/diendan/threads/l%E1%BA%A5y-danh-s%C3%A1ch-t%C3%AAn-c%C3%A1c-sheet-t%E1%BB%AB-file-excel.25407/
Khóa học Power PI – Ứng dung trong Nhân sự
TỔNG QUAN KHÓA HỌC: POWER BI CHO NGÀNH NHÂN SỰ Khóa học Power BI cho Nhân sự được thiết kế dành riêng cho các...
Xem khóa học
Bình luận