1

在我的 python 代码中,我在将数据写入工作表之前将 ScreenUpdating 设置为 False,然后将其设置回 True。一旦 ScreenUpdating 设置为 True,工作表就会闪烁。

代码片段:

self.xlsApp.ScreenUpdating = False                                        
#Write some data here to excel sheet      
self.xlsApp.ScreenUpdating = True

我希望摆脱这种闪烁,但仍然使用 ScreenUpdating 。

有任何想法吗??

问候,奥马尔。

4

1 回答 1

0

如果您将ScreenUpdating=true. 我想,你无能为力。

但是,您可以有条件地设置ScreenUpdating为。falsetrue通常,人们执行的代码只是偶尔(或很少)真正改变数据。因此,如果您在代码中执行的工作表更新只是偶尔确实进行了更新,您可以初始化一个标志false,然后设置ScreenUpdatingfalse,并且true 仅当代码确实进行更新时才将标志设置为。作为更新后的最后一步,仅在设置标志时才设置ScreenUpdating回。true

这样,您只会在真正发生数据更改的情况下看到闪烁。在大多数情况下,这可能已经足以消除闪烁效果。

为了完全避免剩余的闪烁,您可以尝试使用 Windows API 函数锁定 Excel 窗口的内部,按照概述执行代码,然后解锁。这仍然会产生闪烁效果,但不可见,因为重绘过程没有显示。解锁后,重绘仍然发生,但没有清除背景颜色的矩形区域

于 2014-07-25T08:47:57.953 回答