gpt4 book ai didi

performance - VBA屏幕更新和效率

转载 作者:行者123 更新时间:2023-12-02 11:43:54 27 4
gpt4 key购买 nike

我创建了一个“驱动程序”电子表格,用于控制(打开和运行等)其他工作簿上的宏。由于我正在处理的文件非常大并且无法进一步更改,因此我对效率感到迫切。我读过将应用程序屏幕更新设置为 false 有帮助。我已将驱动程序电子表格屏幕更新设置为 false(顶部)(然后在整个过程完成后恢复为 true)。但是,当我运行驱动程序宏时,屏幕会定期更新(看起来它在打开另一个子/宏/工作表时更新屏幕)。驱动程序打开的其他子/宏/工作簿在启动时也将屏幕更新设置为 false,并在结束时返回 true。

我可以将除驱动程序之外的所有其他工作簿的屏幕更新设置为 false(完成后不恢复为 true)吗?我一直在读到我必须始终回归真实......所以这让我担心。

最佳答案

分享一下,我使用的方法是这样的:

Sub passiveRoutine()

Dim ScrnMode as Boolean

With Application
ScrnMode = .Screenupdating
If ScrnMode then .Screenupdating = False
End with

Do stuff


If ScrnMode then Application.Screenupdating = True
End Sub

Sub activeRoutine()

Dim ScrnMode as Boolean

With Application
ScrnMode = .Screenupdating
If Not ScrnMode then .Screenupdating = True
End with

Do stuff


If Not ScrnMode then Application.Screenupdating = False
End Sub

这个想法是为了避免任何不必要的切换,因为有时切换模式所花费的时间比关闭模式所节省的时间要多,而且它往往会减少屏幕的闪烁。

关于performance - VBA屏幕更新和效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20218431/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com