如何解决Microsoft Jet 数据库引擎在新添加的工作表中找不到范围对象
我正在开发一个应用程序,该应用程序从单个 Excel 工作簿中的多个合并范围中提取查询。范围来自用户选择的工作表名称数组。
代码从这些 consol 范围中创建了一个数据透视表。它工作正常,除了一个错误。如果用户先前使用此代码创建了一个数据透视表,然后将新工作表添加到工作簿,并选择此工作表以重新创建包含此新添加工作表的数据透视表,则 Microsoft Jet 数据库引擎找不到对在这个新添加的工作表中合并所需的范围(即使 VBA 确定了该范围的正确 SQL 地址)。如果用户关闭并重新打开工作簿,此错误就会消失,记录集对象成功打开并生成数据透视表。
我对数据库引擎的实际工作方式没有经验。有人可以澄清是什么导致了这种情况以及如何解决吗?
只包含代码的相关部分...
ReDim arSQL(1 To wkscount)
For Each wks In .Worksheets
Select Case IsInArray(wks.Name,leasearrayresult2)
Case True
i = i + 1
arSQL(i) = "SELECT * FROM " & getListObjectSQLAddress(wks.ListObjects(1))
End Select
Next wks
Set wks = Nothing
Set objRS = CreateObject("ADODB.Recordset")
objRS.Open Join$(arSQL," UNION ALL "),_
Join$(Array("Provider=Microsoft.jet.OLEDB.4.0; Data Source=",_
.FullName,";Extended Properties=""Excel 8.0;"""),vbNullString)
Set objPivotCache = .PivotCaches.Add(xlExternal)
Set objPivotCache.Recordset = objRS
Set objRS = Nothing
End With
Set ws2 = Worksheets.Add
With ws2
objPivotCache.CreatePivotTable TableDestination:=.Range("A3"),TableName:="ConsPivot"
Set objPivotCache = Nothing
.Range("A3").Select
End With
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。