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