我需要创建xlPivotTableVersion10透视表(Excel 2003中兼容)通过,我在我的电脑具有Excel 2007中上运行宏创建一个版本10的数据透视表。 我从源文件运行宏。我有另一个文件(WkbVar),它是.xls,并在[兼容模式]中打开,我想创建几个数据透视表。我设法创建一个连接到我的外部Access数据库(DOH位置清单V6),从中获得我的数据源以及具有此连接的数据透视表(PC)。VBA在xls文件通过Excel 2007中
Set pc = WkbVar.PivotCaches.Create(SourceType:=xlExternal,
SourceData:=WkbVar.Connections("DOH Location inventory V6") _
, Version:=xlPivotTableVersion10)
With pc
.CreatePivotTable TableDestination:=WksAlertesVar.Range("A9"),TableName:="PivotTable_0", _
DefaultVersion:=xlPivotTableVersion10
End With
枢轴缓存似乎创造得很好,但后来我就到” .CreatePivotTable [...] DefaultVersion:= xlPivotTableVersion10" 类型1004“中定义的应用对象定义”的错误路线。
我已经尝试了几个变化,这里是什么,我得到一个回顾:
枢缓存版本:= xlPivotTableversion10 + 透视表 DefaultVersion:= xlPivotTableversion10 => 1004错误
枢轴缓存版:= xlPivotTableversion10 + 枢轴表 DefaultVersion:= xlPivotTableversion12 => 1004错误
枢轴缓存版:= xlPivotTableversion12 + 枢轴表 DefaultVersion:= xlPivotTableversion10 => 5错误 “无效过程调用”
枢轴缓存版:= xlPivotTableversion12 + 透视表 DefaultVersion:= xlPivotTableversion12 =>工作正常,但会创建一个Excel 2007数据透视表,该表对xls文件中的过滤器和刷新不兼容。
如果我停下已经创建了连接后,宏和手[兼容模式]创建数据透视表,它仍然可以作为期望:我得到一个Excel 2003数据透视表。这使我认为我正在尝试做的事情是可能的,我似乎无法编写正确的代码...
如果任何人有任何关于如何在xls文件中创建Excel 2003数据透视表但通过Excel 2007应用程序和VBA,我将非常感谢您的知识共享。
真诚, J.
--------------编辑(以下Karter的评论)
确实存在似乎是使用外部源的问题我的数据透视表。更多的搜索和测试了一下后,我想出了以下解决方法:
With ActiveWorkbook.PivotCaches.Create(SourceType:=xlExternal, Version:=xlPivotTableVersion10)
.Connection = Array()'HERE GOES ALL THE DATA RELATIVE TO MY CONNECTION TO THE ACCESS DATABASE
.CommandType = xlCmdTable
.CommandText = Array(_ 'here is the SQL string to select some data from a specific table I have in my Access database
"SELECT *" & Chr(13) & "" & Chr(10) & "FROM [DOH historique avec libelles] WHERE [DOH historique avec libelles]![Numero Site Gestionnaire] = " & NoSite _
)
.MaintainConnection = False
.CreatePivotTable TableDestination:=ActiveWorksheet.Range("A9"), TableName:="PivotTable_0", DefaultVersion:=xlPivotTableVersion10
End With
的时候我会先加只用“DATA相对TO MY连接...”的连接信息,并没有之前。 CommandType,.CommandText等参数。
我不是很熟悉的连接参数,但我想这招有事情做与Karter强调了外部源的问题。
谢谢你花时间看看我的问题。我编辑了我的问题,以报告我对初始代码所做的一些更改以解决该问题,我认为这可能确实与您提到的内部/外部源问题有关。 – user1997216 2013-03-19 14:27:38