繁体   English   中英

加快VBA代码

[英]Speed up the VBA code

您知道如何加快以下VBA代码的运行速度吗? 我已经尝试过在线浏览,但是这里可能还缺少其他内容。 这是一个简单的脚本,令我惊讶的是它花了一些时间来运行。 谢谢

Sub ExistingRecord()

    Application.Calculation = xlCalculationManual
    Application.ScreenUpdating = False
    Application.DisplayStatusBar = False
    Application.EnableEvents = False

    Dim ButtonName As Variant
    Dim ButtonNames As Variant

    ButtonNames = Array("ButtonUpdateExisting", "ButtonAddNew", "ClearForm")
        Rows("2").Select
        Selection.EntireRow.Hidden = False
        Rows("3:22").Select
        Selection.EntireRow.Hidden = True

        Range("D2").Select
          For Each ButtonName In ButtonNames
          ActiveSheet.Buttons("ButtonUpdateExisting").Visible = True
          ActiveSheet.Buttons("ButtonAddNew").Visible = False
          ActiveSheet.Buttons("ClearForm").Visible = True
        Next ButtonName

    ClearDataEntry

    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
    Application.DisplayStatusBar = True
    Application.EnableEvents = True

End Sub

如果不查看ClearDataEntry ,就很难知道它在哪里减速。 但是上面的代码可以简化为以下代码:

Sub ExistingRecord()

    Application.Calculation = xlCalculationManual
    Application.ScreenUpdating = False
    Application.DisplayStatusBar = False
    Application.EnableEvents = False

    Rows("2").EntireRow.Hidden = False
    Rows("3:22").EntireRow.Hidden = True

    ActiveSheet.Buttons("ButtonUpdateExisting").Visible = True
    ActiveSheet.Buttons("ButtonAddNew").Visible = False
    ActiveSheet.Buttons("ClearForm").Visible = True

    ClearDataEntry

    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
    Application.DisplayStatusBar = True
    Application.EnableEvents = True

End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM