使用ADO连接到Excel - 不知道工作表名称

时间:2009-09-09 01:33:17

标签: vba excel-vba excel

我正在使用ADO连接到Excel,但只有在我指定工作表名称时它才有效。我不会在运行时知道它们。有没有方法来获取工作表名称? Excel自动化?

感谢。

2 个答案:

答案 0 :(得分:10)

打开ADO连接后,需要调用OpenSchema()方法,该方法返回结果集,工作表名称为“table_name”

我对VBA有点生疏,但看起来应该是那样的

Dim oConn
DIm oRs
Set oConn = New ADODB.Connection
Dim sConn
sConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=somepathtoXLS; xxx not sure some other connection str props..."
oConn.Open sConn

Set oRS = oConn.OpenSchema(adSchemaTables)
Do While Not oRS.EOF 
   sSheetName = oRS.Fields("table_name").Value
   // do somethng with the sSheetName
   oRS.MoveNext()
Loop

答案 1 :(得分:0)

通过自动化:

(1)设置对相应Excel库的引用 - 我正在使用Excel 2003,因此它是“Microsoft Excel 11.0对象库”

(2)创建Excel Application对象

(3)打开相关的Workbook

(4)遍历Worksheets集合

(5)获取每个Name

Worksheet属性
Dim xlApp As Excel.Application
Dim wb As Workbook
Dim ws As Worksheet

Set xlApp = New Excel.Application
Set wb = xlApp.Workbooks.Open("C:\foo.xls")

For Each ws In wb.Worksheets
    MsgBox ws.Name
Next ws

wb.Close
xlApp.Quit