即使在Screenupdating设置为True后,Excel工作表屏幕也不会更新

时间:2017-09-21 18:54:07

标签: vba excel-vba excel

我遇到一个不寻常的问题,Excel工作表没有响应键盘箭头移动,Excel关闭按钮没有响应等等。我有VBA代码行,我在这些代码的末尾检查了Application.ScreenUpdating = True线。就目前而言,唯一有助于解冻"解冻"工作表是用Application.ScreenUpdating = True手动运行一个简单的过程。作为额外的验证层,我打开了另一个文件,其中包含更简单的VBA代码行并且100%可操作,现在我看到完全相同的问题。 我唯一的怀疑是它与Excel本身而不是代码有关。有没有人有同样的问题?

更新:为了提供证据证明这与代码无关,我在另一台机器上重新检查了这个文件,一切正常。我现在确定这个问题与我的PC或Excel本身有关......

1 个答案:

答案 0 :(得分:1)

您可以在代码上使用import org.apache.spark.sql.functions._来“重新获得”对Excel的控制权。 例如在代码中

DoEvents

这可能会导致excel冻结。要做到这一点,请执行:

For i = 1 to 99999999999
 'humongous code here
Next i

这样,它将始终在执行代码之前解锁excel。

要小心,因为这可以让你编辑字段,这会中断代码的执行,从而导致不必要的影响。

例如,我通常会执行以下操作:

For i = 1 to 99999999999
DoEvents
 'humongous code here
Next i

因此,如果自上次解锁后已经过了4秒,它将仅执行解锁。