阅读Excel文件表名称

时间:2013-08-23 22:14:43

标签: excel ms-access access-vba ms-access-2010

我有一个导出过程,可以将Access表中的数据传输到Excel文件。有几次我遇到的问题是,这个过程没有在Excel中生成一个或多个工作表(1张= 1个表)。因此,当传输完成后,我希望Access检查所有工作表是否都位于Excel文件中。我已经完成了大部分检查过程,我现在需要的是一种将Excel文件中的工作表名称“读取”到表中的方法。如何阅读工作表名称(而不是数据)?

2 个答案:

答案 0 :(得分:8)

从Access,您可以自动执行Excel,打开工作簿文件,并从Worksheets集合中读取工作表名称。

此示例使用后期绑定。如果您更喜欢早期绑定,请为 Microsoft Excel [版本]对象库添加引用,并启用“早期”行而不是“延迟”行。

将过程作为 pWorkBook 参数的工作簿文件的完整路径。

Public Sub List_worksheets(ByVal pWorkBook As String)
    'Dim objExc As Excel.Application ' early
    'Dim objWbk As Excel.Workbook ' early
    'Dim objWsh As Excel.Worksheet ' early
    Dim objExc As Object ' late
    Dim objWbk As Object ' late
    Dim objWsh As Object ' late

    'Set objExc = New Excel.Application ' early
    Set objExc = CreateObject("Excel.Application") ' late
    Set objWbk = objExc.Workbooks.Open(pWorkBook)
    For Each objWsh In objWbk.Worksheets
        Debug.Print objWsh.Name
    Next
    Set objWsh = Nothing
    objWbk.Close
    Set objWbk = Nothing
    objExc.Quit
    Set objExc = Nothing
End Sub

答案 1 :(得分:2)

在Access 2007中,可以使用OpenDatabase方法执行此操作:

Private Sub Command1_Click()
Set db = OpenDatabase("c:/123.xls", True, False, "Excel 5.0")
    For Each tbl In db.TableDefs
        MsgBox tbl.Name
    Next
End Sub