gpt4 book ai didi

vba - 在运行任何程序之前和之后自动执行代码

转载 作者:行者123 更新时间:2023-12-04 22:04:34 27 4
gpt4 key购买 nike

在启动任何繁重的脚本之前,我需要使用 Excel 进行一些性能调整:

'Save parameters
screenUpdateState = Application.ScreenUpdating
statusBarState = Application.DisplayStatusBar
calcState = Application.Calculation
eventsState = Application.EnableEvents

'Turn them off
Application.ScreenUpdating = False
Application.DisplayStatusBar = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False

所以我在运行几乎每个程序之前粘贴了这段代码(或调用特殊程序,包含这段代码,没有区别)。有没有办法自动执行此操作(某种全局构造函数)?

完成该过程后,代码的情况与此相同:
'Put everything back
Application.ScreenUpdating = screenUpdateState
Application.DisplayStatusBar = statusBarState
Application.Calculation = calcState
Application.EnableEvents = eventsState

最佳答案

循环遍历范围并选择各种事物的代码经常落后于这种优化的需求,几乎可以 总是 避免。如果您需要帮助优化繁重的脚本,请使用资源密集型代码提出另一个问题。

在没有看到您的“繁重脚本”之一的示例的情况下,最好的办法是将您的设置和恢复代码放在 subs 中,并在您运行程序之前和之后调用它们。

Sub HeavyLifting()
Call GetReadyToProcess

' code for sub...

Call ReturnSettingsToWhatTheyWere
End Sub

Sub GetReadyToProcess()
'Save parameters
screenUpdateState = Application.ScreenUpdating
statusBarState = Application.DisplayStatusBar
calcState = Application.Calculation
eventsState = Application.EnableEvents

'Turn them off
Application.ScreenUpdating = False
Application.DisplayStatusBar = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
End Sub

Sub ReturnSettingsToWhatTheyWere()
'Put everything back
Application.ScreenUpdating = screenUpdateState
Application.DisplayStatusBar = statusBarState
Application.Calculation = calcState
Application.EnableEvents = eventsState
End Sub

关于vba - 在运行任何程序之前和之后自动执行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26677737/

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