我正在使用ADO连接到Excel,但只有在我指定工作表名称时它才有效。我不会在运行时知道它们。有没有方法来获取工作表名称? Excel自动化?
感谢。
答案 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