【发布时间】:2018-09-05 23:00:07
【问题描述】:
我从用户那里收到一个 excel(Book1.xls) 文件,有时其中一个工作表名称是 XYZ,有时它的名称是 XYZ1。
我在做
Dim Conn,Rs
Set Conn = CreateObject("ADODB.Connection")
Conn.ConnectionTimeout = 10
Conn.CommandTimeout = 300
Conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Book1.xls;Extended Properties=""Excel 12.0;HDR=No;IMEX=1"";"
Set RS = Conn.Execute("SELECT * FROM [XYZ$B1:B1]")
当工作表名称为 XYZ1 时,上述代码的最后一行会出现错误消息: Microsoft Access 数据库引擎找不到对象“XYZ$CB1:B1”。确保对象存在并且正确拼写其名称和路径名。如果 'XYZ$CB1:B1' 不是本地对象,请检查您的网络连接或联系服务器管理员。
我想做的不是最后一行,而是
sheetNameString = Conn.Execute("SELECT Join(SheetName) from Book1.xls")
If InStr(sheetNameString,"XYZ1") Then
Set RS = Conn.Execute("SELECT * FROM [XYZ1$B1:B1]")
Else
Set RS = Conn.Execute("SELECT * FROM [XYZ$B1:B1]")
End If
【问题讨论】: