- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这实际上并不是一个特定于代码的问题,而是更多地满足好奇心(并避免 future 的问题),所以我认为 SO 是一个合适的地方来问它。
我的问题的基础是:VBA 如何处理 Application.ScreenUpdating
以及来自在子例程中调用的子例程的其他此类调用?
举个例子,我有一个方法BackupData
这只是非常快速地从事件表中获取数据并将其复制到具有相同名称并附加“备份”的隐藏表(我使用它为我的用户提供“撤消”宏,因为您不能使用常规方法撤消子程序的 Action )。在 BackupData
, 我切换 ScreenUpdating
为 False 和 True 只是为了使操作对最终用户完全隐藏。有问题的问题是因为我让用户可以自由访问运行宏,但也选择从其他也切换 ScreenUpdating
的宏中调用它。属性(property)。
所以,如果 BackupData
在宏切换 ScreenUpdating
后从宏中调用属性为 False,将 BackupData
调用将属性设置为 True 会覆盖“外部”例程的调用,从而使该宏的其余部分在屏幕更新时运行?
现在,显然,我知道这个问题有很多简单的解决方案。我可以在 BackupData
中存储一个 bool 值检查是否 ScreenUpdating
已经为假,如果是这种情况,则不要将其返回为真,或者我可以简单地重复 ScreenUpdating = False
运行后调用BackupData
, 或者我什至可以写一个与 BackupData
相同的子这不会切换我从这些其他宏内部运行的值,但是这个问题的重点不是找到那个解决方案。
我想这更多是关于 VBA 如何与嵌套子例程调用一起工作的问题,但我希望这里的某个人能够通过关于 VBA 是否会为我处理这个问题或者我是否需要的明确答案来满足我的好奇心使用上述解决方法之一。
TL;博士
我不是在寻找解决方案,因为我已经制定了很多选择。我只是好奇是否有人确切知道 VBA 如何处理这些类型的调用(甚至不仅特定于 ScreenUpdating
属性,还包括其他应用程序属性)
最佳答案
Application.ScreenUpdating
是应用程序的设置,在设置和取消设置时全局激活/停用。
您的假设是正确的,如果您在子程序中将其设置为 False,那么该程序会调用 BackupData
再次将其设置为假,然后在将范围返回给调用者之前将其设置为真,ScreenUpdating
然后对于调用子例程的其余部分为 True。
将其视为具有全局范围的变量;无论在哪里设置,该值都是全局设置的。它为 Application
全局设置。 level,它是在程序实例中打开的所有工作簿的父对象(在本例中为 excel.exe
)。设置它会影响实例中的所有工作簿;但如果你有另一个 excel.exe
进程正在运行,它不会影响该实例中的工作簿。
关于vba - 在子例程中调用的子例程中的 Application.ScreenUpdating,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38122480/
我最近购买了《C 编程语言》并尝试了 Ex 1-8这是代码 #include #include #include /* * */ int main() { int nl,nt,nb;
早上好!我有一个变量“var”,可能为 0。我检查该变量是否为空,如果不是,我将该变量保存在 php session 中,然后调用另一个页面。在这个新页面中,我检查我创建的 session 是否为空,
我正在努力完成 Learn Python the Hard Way ex.25,但我无法理解某些事情。这是脚本: def break_words(stuff): """this functio
我是一名优秀的程序员,十分优秀!