这是我的问题:我想从另一个 Excel 电子表格中的 Excel XML 电子表格 (*.xlsx) 中检索数据而不打开它。所以我给了 OLEDB 与 ACE Provider 的机会。
通过循环访问我的记录集,连接有效,我得到了我想要的。但是现在我想要一些优化,即将我的记录集放在一个块中的excel中,而不是循环遍历它。
因此我做了这样的事情:
Sub RetrieveData()
Dim con As ADODB.Connection
Dim rs As ADODB.Recordset
Set con = New ADODB.Connection
Set rs = New ADODB.Recordset
With con
.Provider = "Microsoft.ACE.OLEDB.12.0"
.ConnectionString = "Data Source=Path\File.xlsx; _
Extended Properties=""Excel 12.0 Xml;HDR=NO;IMEX=1"""
.Open
Set rs = .Execute("Select * From [Sheet1$]")
'Problem here
Range(Cells(1, 1), Cells(rs.RecordCount, rs.Fields.Count - 1)) = rs
.Close
End With
Exit Sub
这里的问题是,我目前正在处理我对它们不太了解并且找不到任何文档的技术(例如 Microsoft ACE 12.0 Provider for OLEDB)。
问候。
(甚至毫不犹豫地纠正我糟糕的语法)