如何使用VBA清除数据透视表缓存,但不破坏数据透视表结构?我的数据透视表已连接到外部数据源。 SQL 源决定哪个用户应该查看数据的哪一部分。当表刷新时,源会填充该表。我想保存 Excel 文件并使用干净的数据透视表(内部没有数据)分发它。
结果我想得到这个:
我已经围绕这段代码进行了实验,但没有成功。 VBA 中没有像 PivotCaches.Clear 这样的东西。
Sub PT_cache_clear()
For Each pc In ActiveWorkbook.PivotCaches
pc.Clear
Next pc
End Sub
我发现的唯一好的解决方案是使用有权访问 SQL Server 源但不允许查看任何单个数据记录的用户刷新表。
想法:
ActiveSheet.PivotTables("PivotTable1").SaveData = False
似乎没有达到预期的结果。
我这样做的方法是使用查询刷新,该查询将返回表结构但包含 0 条记录。因此,如果从视图中选择类似的内容:
select top 0 *
from vw_MyPivotData
如果使用存储过程,您可以发送一个参数来确保不会返回任何记录,例如您知道数据中不存在的过滤器或为不返回记录而设计的特殊参数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)