python < – > excel:ScreenUpdating使表单闪烁

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

代码片段:

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

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

有任何想法吗??

问候,奥马尔。

如果设置ScreenUpdating=true则某些(如果不是全部)Excel版本完全重绘自己。 我想,没有什么可以做的。

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

这样,只有真正发生数据更改的情况才能看到闪烁。 这已经足以摆脱大部分时间的闪烁效应。

为了完全避免闪烁,可以尝试使用Windows API函数lockingExcel窗口的内部,按照概述执行代码,然后解除locking。 这仍然会产生闪烁的效果,但无形中,因为重绘过程不显示。 解锁后,重画仍然占位, 但不会清除具有背景色的矩形区域