我从“停止 excel 屏幕闪烁”的长系列中得到了另一个问题,但我认为这个问题有点棘手。
我有一个客户在宏执行期间需要在他的电子表格上显示一个“进度”栏。我所做的是,我有一个饼图链接到 2 个单元格,我会根据进度进行调整。为了性能,我禁用了events
,ScreenUpdating
并更改了calculation to manual
.
然后,偶尔我会快速切换ScreenUpdating on and off
到实际更新进度表。每次我使用它时,这就像一个魅力(现在有 30 多个项目)。
最近,客户带着一个“大”问题来找我。每当我进行快速切换以刷新进度表时,整个 Excel 屏幕(包括上面的所有项目)都会闪烁,这让这家伙发疯了。
有没有人知道可以做些什么来保持图表更新,同时保持首页不断显示(页面之间的宏跳转)而没有屏幕闪烁?像双缓冲之类的东西......
解决方案
信不信由你,但我刚刚找到了解决方案。这太容易了。在 VBA 中,可以仅刷新特定对象,而其余屏幕保持“锁定”状态。例如:
ThisWorkbook.Worksheets("Welcome").ChartObjects(1).Chart.Refresh
谢谢大家的意见。