在我的python代码中,我在将数据写入工作表之前将ScreenUpdating设置为False,然后将其设置回True。 ScreenUpdating设置为True后,工作表闪烁。
代码段:
self.xlsApp.ScreenUpdating = False
#Write some data here to excel sheet
self.xlsApp.ScreenUpdating = True
我希望摆脱这种闪烁,但仍然使用ScreenUpdating。
任何想法??
此致 奥马尔。
答案 0 :(得分:0)
如果设置ScreenUpdating=true
,某些(如果不是全部)Excel版本会完全重绘自己。我认为你无能为力。
但是,您可以有条件地将ScreenUpdating
设置为false
和true
。通常,只执行有时(或很少)的代码真的改变了数据。因此,如果您在代码中执行的工作表更新仅偶尔会更新,则可以向false
初始化一个标记,然后将ScreenUpdating
设置为false
并将标记设置为true
} 仅当代码确实进行更新时。作为更新后的最后一步,只有在设置了标志时才将ScreenUpdating
设置回true
。
这样,您只会看到真正发生数据更改的情况下的闪烁。这已经足以在大多数情况下摆脱闪烁效应。
为了避免完全闪烁,您可以尝试使用Windows API函数锁定Excel窗口的内部,按照概述执行代码,然后解锁。这仍然会产生闪烁效果,但不可见,因为重绘过程没有显示。解锁后,重绘仍然会显示,但不会清除带有背景颜色的矩形区域。