gpt4 book ai didi

performance - Excel vba Application.screenupdating 与 Application.visible

转载 作者:行者123 更新时间:2023-12-03 00:25:38 25 4
gpt4 key购买 nike

我有一个 vba 代码,可以将某些单元格从另一个 Excel 工作表复制到事件的 Excel 工作表。我希望工作能够更快地完成。

那么,将 Application.ScreenUpdating 设置为 false 是否比将 Application.screenupdating/Application.visible 更改为隐藏或同时执行两者都可以更好地加快任务速度?

最佳答案

我没有直接回答你的问题;但我认为将 Application.visible 设置为 false 不会提高性能;我更喜欢使用以下代码:

Public Sub YK_Start()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
End Sub

Public Sub YK_End()
Application.ScreenUpdating = True
Application.DisplayAlerts = True
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
End Sub

使用示例:

Sub LoopExample()
Dim Cell As Range
Call YK_Start
Columns("B:F").ClearContents
For Each Cell In Range("A1:A100000")
Cell.Offset(, 1) = Cell.Value + 1
Cell.Offset(, 2) = Cell.Value + 2
Cell.Offset(, 3) = Cell.Value + 3
Cell.Offset(, 4) = Cell.Value + 4
Cell.Offset(, 5) = Cell.Value + 5
Next Cell
Call YK_End
End Sub

此源代码将在18秒内执行,无需使用Call YK_StartCall YK_End;并且它将使用这些过程在10秒内执行。

引用:www.officena.net :阿拉伯语办公论坛。
编辑#1
有很多方法可以测量代码的执行时间;我不知道最准确的一个;我只需要近似值;请参阅:
How do you test running time of VBA code?
我正在使用最简单的一个:

Sub my_test()
Dim t As Single
t = Timer
'code
Call LoopExample
MsgBox Timer - t
End Sub

关于performance - Excel vba Application.screenupdating 与 Application.visible,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30422236/

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