我写了一个简单的代码来重现问题:VBA在Excel中:画面冻结了此前连续复印了几秒钟,粘贴
Sub test()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
For i = 1 To 1000
Range("A" & i).Copy Destination:=Range("B" & i)
Next
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
如果我执行上面的程序块,在完成程序后,在将控制权释放给用户之前,屏幕将冻结约5秒钟。
如果我更改副本的次数(从1000代码中的其他值),我可以看到冻结时间与副本数成正比。
这是我的电脑的问题,还是实际发生在每台电脑上?我该如何解决这个问题?
上的一篇文章你确定它冻结后,不会在? – GSerg
是的,我试图添加一个用户窗体,将在循环后弹出。我只能在5秒后关闭用户表单。 – Pingu
可能是关于计算,但它不应该真的取决于迭代次数,因为它会在每次迭代之后重新计算。尽管尝试关闭自动计算。 – GSerg