我正在使用ADO开发Excel VBA应用程序。我试图打开一个记录集,但如果我的表有超过65536行,则open方法失败。我知道这个数字是旧的Excel行限制,但我使用2016版本和正确的连接字符串。也许它是我项目中引用的一些库,但我无法找出哪一个。
如果我能得到一些帮助,我将非常感激。
错误: 运行时错误' -2147217865(80040e37)':Microsoft Jet数据库引擎找不到对象'我的工作表$ A8:AD70000'。确保对象存在,并且您正确拼写其名称和路径名称。
我的代码(我必须切换工作表名称,以便我不会泄露任何敏感数据):
Sub MySub()
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim str As String
Set rs = New ADODB.Recordset
Set conn = New ADODB.Connection
str = "SELECT * FROM [My sheet$A8:AD70000];"
'Opening connection with the workbook
conn.ConnectionTimeout = 90
conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & Application.ThisWorkbook.FullName & ";" & _
"Extended Properties=""Excel 12.0 Macro;HDR=YES;IMEX=1"";"
conn.Open
rs.Open str, conn, adOpenForwardOnly, adLockReadOnly, adCmdText
rs.Close
conn.Close
End Sub
如果我更改"我的表单$ A8:AD70000"到"我的工作表$ A8:AD60000",此代码可以工作。
我使用的图书馆:
Visual Basic For Applications
Microsoft Excel 16.0对象库
Microsoft Forms 2.0对象库
Microsoft Office 16.0对象库
Microsoft ActiveX数据对象6.1库
OLE自动化
非常感谢你的关注。