ADODB – 为什么我的logging集是只读的?

在Excel中,我使用ADODB连接来构build一个logging集,从其工作簿中的工作表中获取数据,如下所示:

Public Sub test() Dim cnn As New ADODB.Connection Dim rst As New ADODB.Recordset Dim strSQL As String Dim k As Variant cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _ "Data Source=" & ThisWorkbook.Path & "\" & ThisWorkbook.Name & ";" & _ "Extended Properties=""Excel 12.0;HDR=No;IMEX=1;Readonly=False"";" strSQL = "SELECT F1 FROM [Workbench$];" rst.Open strSQL, cnn, adOpenStatic, adLockOptimistic rst.MoveFirst While Not rst.EOF rst("F1") = "NewValue" rst.Update rst.MoveNext Wend End Sub 

但是,运行代码时发生错误:

运行时错误“-2147217911(80040e09)”:
无法更新。 数据库或对象是只读的。

我已经检查过我打开的工作簿的权限,这是可以的(完全控制访问所有人)。

我在这里做错了什么?

我通过使用IMEX = 0解决了我的问题

 rst.Open strSQL, cnn, adOpenStatic, adLockOptimistic 

replace为

 rst.Open strSQL, cnn, 1, 3