转自http://blog.youkuaiyun.com/laoyebin/article/details/5332990
Sub test()
Dim cn As Object, cat As Object, tbl As Object, str$
Set cn = CreateObject("ADODB.Connection")
Set cat = CreateObject("ADOX.Catalog")
Set tbl = CreateObject("ADOX.Table")
cn.Open "dsn=excel files;dbq=" & ThisWorkbook.Path & "/test.xls"
cat.ActiveConnection = cn
For Each tbl In cat.Tables
str = str & Replace(tbl.Name, "$", "") & vbCrLf
Next
MsgBox str
cn.Close
Set cn = Nothing
Set cat = Nothing
Set tbl = Nothing
End Sub
注意:1、没有真正意义上的不打开表,这个示例是用数据库引擎打开的,是一种隐式的打开方法。
2、输出结果是按字母顺序排序的,而不是那个工作簿里面真正的表的顺序。