Application.ScreenUpdating = False
If ... something... Then
Range("calc02").EntireRow.Hidden = False // this is critical point
End If
Application.ScreenUpdating = True
该行已经可见,因此无事可做,但工作表上的图像和文本框被重新绘制(它们闪烁)。我怎样才能防止这种闪烁?
添加
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
这是一个很好的记住 - 将行和列设置为隐藏或不隐藏真的很慢,特别是如果你必须重复这样做。因此,按照 enderland 的描述进行测试总是值得的。这应该有助于避免闪烁,并且应该运行得更快。