我有以下问题:
我有一个宏,根据activecell是否是透视表的一部分,它执行以下操作:
-如果activecell不是透视表的一部分,它将创建一个包含ODBC数据源和windows剪贴板中的sql查询的透视表
-否则它将PivotCache.CommandText替换为剪贴板中包含的查询。
这一切都很好,直到我发现了透视切片器,一旦用宏创建了透视表,我就可以添加切片器,它也很好,但当我用新的sql查询替换CommandText属性时,现有的切片器不会刷新,当我尝试添加新的切片器时,我会收到如下错误消息:
“数据透视表是在早于2007年的excel版本或兼容模式下创建的”
(我不能直接发布消息,因为我没有使用英文版的excel)
我发现每当我更改PivotCache.CommandText(或.sql)属性时,PivotCCache.Version都会以编程方式从“xlPivotTableVersion12”更改为“xlPiotTableVersion2000”,这明显早于Excel 2007。属性.Version为readOnly,因此无法更改它。
问题是,这个问题也出现在我公司广泛使用的一个报告中,其中vba用于构造sql查询(基于用户单击useform的内容),然后将其放入透视表中,而我不能使用切片器。
有人知道吗?