DAO/链接表/ODBC
快速获取Excel文件所有工作表表名
2017-04-12 17:04:07

获取Excel工作表表名一般使用创建Excel.Application对象的方法,但速度比较慢。使用dao的方法则可以快速获取,代码如下:  

作者:t小宝

'获取Excel文件所有工作表名称的过程

Public Sub GetExcelSheetName()

    Dim dbs As DAO.Database

    Dim tbf As DAO.TableDef

    Dim sSheetName As String

    

    Dim sFileName As String

    sFileName = "d:\My Documents\个人文档\报名表.xls"

    

    ' 把Excel文件当作数据库用dao打开

    Set dbs = OpenDatabase(sFileName, False, False, "Excel 8.0;")

    

    '循环所有表

    For Each tbf In dbs.TableDefs

        sSheetName = tbf.Name

        

        ' 如果表名是数字,两边会加上单引号,这里去掉

        If sSheetName Like "'*'" Then

            sSheetName = Mid(sSheetName, 2, Len(sSheetName) - 2)

        End If

        

        '可能会返回很多表,但只有最后一个字符为$的表是可用和可见的,是我们需要的

        If Right(sSheetName, 1) = "$" Then

            sSheetName = Mid(sSheetName, 1, Len(sSheetName) - 1)

            Debug.Print sSheetName

        End If

    Next

End Sub