"Remember to set the ScreenUpdating property back to True when your macro ends"是什么意思?



这是在这个链接中说的
但是因为我的英语能力有限,我不太懂这个句子。

我在玩类似的东西来测试它

Sub test1()
Application.ScreenUpdating = False
For Each cell In Range("A1:A200"): cell.Select: Next
End Sub

运行test1 sub,单元格A200被选中,但在表格上我仍然可以看到第1行,我没有看到单元格A200。

尽管我怀疑我是否会看到带有下一个子的单元格A200,但无论如何,我想链接中的句子可能是这样的意思:";对于test1 sub的类型,如果application.screenupdating = true放在end sub之前,那么我可以看到小区A200";

所以我做了test2 sub:

Sub test2()
Application.ScreenUpdating = False
For Each cell In Range("A1:A200"): Cell.Select: Next
Application.ScreenUpdating = True
End Sub

运行test2 sub,同样的结果,我仍然没有看到单元格A200,尽管单元格A200被选中。

接下来,我做另一个子

Sub test3()
For Each cell In Range("A1:A200"): cell.Select: Next
End Sub

我运行test1 sub,然后直接运行test3 sub。
当子test3正在运行时,它会选择每个单元格,直到我在test3子完成后看到单元格A200。

因此,就目前而言,我的结论很奇怪:
">无需记住在宏结束时将ScreenUpdating属性设置回True">因为我的结论似乎是";反对";链接中的句子

除了
如果我假设句子"当您的宏结束时">--->表示";当代码的一部分结束时。所以,它是这样的:

Sub test4()
Application.ScreenUpdating = False
For Each cell In Range("A1:A200"): cell.Select: Next
Application.ScreenUpdating = True
Selection.Select
End Sub

因为这只是我自己的假设,我很好奇"记得在宏结束时将ScreenUpdating属性设置回True">意思是?

任何形式的回应都将不胜感激
提前感谢您。

当您禁用更新时,操作集很快,因为ui在该集中的每个操作之后都不会更新。但是,您需要重新启用(或者更准确地说,恢复(此属性的状态,以允许将来的操作(在脚本中(更新ui。

如果您想查看上次单元格选择的效果,请在重新启用ui更新后再次选择单元格。

最新更新