【发布时间】:2012-12-19 20:11:40
【问题描述】:
我正在尝试从单个切片器中选择和取消选择多个切片器项目,而不让它触发更新,直到我的所有选择都完成。通过按住 Ctrl 键单击我想要的所有选择,我可以在 Excel 前端非常简单地做到这一点。但是,当我录制具有此行为的宏并运行它时,它会在每次选择/取消选择后更新(录制的宏只是 With 块中的一堆 .Selection = True/False 语句)。
我尝试使用 SlicerCaches.VisibleSlicerItemsList 函数,但这会引发 1004 应用程序错误 - 即使我使用了 SlicerItem.Name 字段来填充数组:
Dim tntw(0 To 2) as Variant
For i = 0 To 2
tntw(i) = sc.SlicerItems(i + 1).Name
Next i
sc.VisibleSlicerItemsList = tntw
我还尝试将所有相关的数据透视表设置为手动更新,并尝试将 application.calculation 设置为手动(并在最后切换回),但都没有完成我想要的。
有什么想法吗?
【问题讨论】:
-
你有没有在执行代码之前尝试
Application.EnableEvents = False,然后再重置它?? -
看起来可以 - 谢谢!请注意,我需要在上次选择之前重新打开事件,以便我需要捕获的其他事件实际触发,但这似乎可以做到。
标签: excel pivot-table vba