gpt4 book ai didi

vba - 如何加速 VBA 代码

转载 作者:行者123 更新时间:2023-12-02 08:59:55 25 4
gpt4 key购买 nike

我有一个带有 VBA 代码的 Excel 文件(不是我写的)该代码的工作原理是用户在用户表单中输入 6 位数字,然后 VBA 检查另一张工作表,并检查该 6 位数字是否存在于工作表上。如果是,则会更改阶段,但如果没有,则会将此 6 位数字添加到工作表中

它曾经完美地工作,但现在由于excel文件的行数增加了,几乎有6000行,这段代码变得非常慢,需要长达20秒才能更新工作表

有人可以帮我加快这段代码的速度,或者建议其他方法来实现它

代码如下

Private Sub cmdPSDUdate_Click()
Dim x
If (Me.PSDUDateRow = "") + (Me.PSDStageCB.ListIndex = -1) Then Exit Sub
With Sheets("psdata stage cals").ListObjects("PSDataStageCals")
x = Application.Match(Val(Me.PSDUDateRow), .ListColumns(1).DataBodyRange, 0)
If IsNumeric(x) Then
.ListRows(x).Range(2) = Me.PSDStageCB.Value
Else
.ListRows.Add.Range = Array(Val(Me.PSDUDateRow), Me.PSDStageCB)
End If
End With
Me.PSDUDateRow.Value = ""
Me.PSDStageCB.Value = ""
Me.PSDUDateRow.SetFocus
End Sub

提前致谢

拉胡尔

最佳答案

您可以关闭屏幕更新、自动计算等

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

‘Place your macro code here

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

关于vba - 如何加速 VBA 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47089741/

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