据我所知,Application.ScreenUpdating = true值被保留,直到设置了Application.ScreenUpdating = false。但是,这个价值的“终生”是什么?在打开工作表时,是否在启动和结束时调用它的过程?Excel 2010中的Application.ScreenUpdating值的生命周期是什么?
制造类,以保持ScreenUpdating值一致,以我的需求:
- 初始化类
- 集ScreenUpdating =假
- 在手术结束时或在错误的情况下恢复的值设置为True。
该类处理这种情况确定。
有时候需要相反:
- 初始化类
- 组ScreenUpdating =真
在过程结束时或在错误的情况下的值恢复为False。
我在这里遇到麻烦;该类正确地设置了ScreenUpdating = false的值,但是当类获得ScreenUpdating的“实际”值时,它始终为真。没有其他程序或插件可以改变这个值。
已经准备了test sheet以显示以上几点。从“suCaller”按钮上方的下拉菜单中选择ScreenUpdating的值。
- 选择False并按下按钮。
- 设置False之前的值为真如预期。
- 测试数据从显示ScreenUpdating新值(False)的另一个过程填充。
- 数据填充后,该值重置为True。
- 再次按下按钮,'实际'值与预期一致为真。
- 做了很多次,值应该没问题。
现在选择True并按下按钮。设定真之前
- 值为真如预期(其是从上方的值)
- 测试数据被再次填充表示ScreenUpdating新值(真)
- 数据填充之后,值被复位为假。
- 再次按下按钮,'实际'值为真并非假。
该类只会否定新值以定义恢复值,所以结果会使我在生命周期中感到困惑,或者应该如何设置ScreenUpdating值。
我在课上做错了什么或缺少一些基本理论?
类模块:ApplicationScreenUpdate
测试模块:测试
Test Sheet TIA,奥斯卡。
嗨詹姆斯;不太关注你。但是从我的测试中可以看出,无论其他过程如何,Application.EnableEvents都会“永久”保留其值,直到您更改为止。您可以使用相同的类来测试它,只需使用EnableEvents更改对ScreenUpdating的所有引用即可。 – Oscar 2013-02-13 20:28:20
其中一些事件会更改屏幕更新属性...所以这是一些尝试,但正如我最初所说,这种行为看起来是按设计进行的。 – 2013-02-15 22:02:04