gpt4 book ai didi

excel - Excel 2010 中 Application.ScreenUpdating 值的生命周期是多长?

转载 作者:行者123 更新时间:2023-12-02 23:05:46 25 4
gpt4 key购买 nike

据我所知,Application.ScreenUpdating = true 值将一直保持到设置 Application.ScreenUpdating = false 为止。但这个值的“生命周期”是多少?是在调用它的过程开始和结束时,还是在工作表打开时?

创建了一个类来保持 ScreenUpdating 值符合我的需求:

  • 初始化类
  • 设置 ScreenUpdating = False
  • 在过程结束时或出现错误时,将值恢复为 True。

该类可以正常处理这种情况。

有时需要相反的情况:

  • 初始化类

  • 设置 ScreenUpdating = True

  • 在过程结束时或出现错误时,将值恢复为 False。

    我在这里遇到了麻烦;该类正确设置了值 ScreenUpdating = false,但当该类获取 ScreenUpdating 的“实际”值时,它始终为 true。没有其他过程或插件可以更改该值。

已准备好test sheet以显示以上几点。从“suCaller”按钮上方的下拉列表中选择 ScreenUpdating 的值。

  • 选择“False”并按下按钮。
  • 设置 False 之前的值符合预期为 True。
  • 测试数据是从另一个显示 ScreenUpdating 新值 (False) 的过程中填充的。
  • 数据填充后,该值将重置为 True。
  • 再次按下按钮,“实际”值为预期的 True
  • 重复多次,值应该没问题。

现在选择 True 并按下按钮。

  • 设置 True 之前的值符合预期为 True(即上面的值)
  • 再次填充测试数据,显示 ScreenUpdating 新值 (True)
  • 数据填充后,该值将重置为 False。
  • 再次按下按钮,“实际”值为 True 而不是 False

该类只是否定新值来定义恢复值,因此结果让我对生命周期或如何设置 ScreenUpdating 值感到困惑。

我在类里面做错了什么或者错过了一些基本理论吗?

类模块:ApplicationScreenUpdate

测试模块:测试

Test SheetTIA,奥斯卡。

最佳答案

据我所知,这是设计使然的行为(但我没有可引用的来源)。

虽然经验丰富的开发人员希望保留该设置,但缺乏经验的开发人员可能不会意识到他们做了什么,并且如果他们在宏完成后尝试手动将数据放入工作表中,就会认为 Excel 已损坏。

您可以尝试的方法是禁用应用程序事件,因为有时它们可​​以重置值,您也可能想在将更新设置为 false 后尝试写入一个值,但我怀疑该值会在宏完成后出现。

关于excel - Excel 2010 中 Application.ScreenUpdating 值的生命周期是多长?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14851881/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com