1
Application.ScreenUpdating = False
If ... something... Then
Range("calc02").EntireRow.Hidden = False // this is critical point
End If
Application.ScreenUpdating = True

该行已经可见,因此无事可做,但工作表上的图像和文本框被重新绘制(它们闪烁)。我怎样才能防止这种闪烁?

4

2 回答 2

1

添加

application.screenupdating = false
'your code here
application.screenupdating = true

这应该可以解决大部分问题。


添加一个额外的 if 语句来检查该行是否需要设置为不隐藏,这样就不会不必要地这样做:

If ... something... Then
    if (Range("calc02").EntireRow.Hidden = true) then
        Range("calc02").EntireRow.Hidden = False // this is critical point
    end if
End If
于 2012-08-22T12:39:05.863 回答
1

这是一个很好的记住 - 将行和列设置为隐藏或不隐藏真的很慢,特别是如果你必须重复这样做。因此,按照 enderland 的描述进行测试总是值得的。这应该有助于避免闪烁,并且应该运行得更快。

于 2012-08-22T13:21:06.790 回答