不打开另一个工作簿取它里面的工作表名

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、输出结果是按字母顺序排序的,而不是那个工作簿里面真正的表的顺序。

你可能感兴趣的:(EXCEL,VBA)