【问题标题】:Is there a way to prevent Excel from automatically setting Application.ScreenUpdating to True有没有办法防止 Excel 自动将 Application.ScreenUpdating 设置为 True
【发布时间】:2011-09-20 00:15:07
【问题描述】:

我有一个 COM (C++) API,它侦听来自服务器的数据更新并将这些更新写入工作表。这些更新在 VBA 代码中处理,并且每秒可以到达多次。为了以最有效的方式将这些更新写入工作表,我使用以下前提:

 Application.ScreenUpdating = False
 Application.Calculation = xlCalculationManual

 <UPDATE CODE>
 Application.ScreenUpdating = True
 Application.Calculation = xlCalculationAutomatic

事实上,我安排了一个程序来定期执行此操作,其中ScreenUpdating = False 大约持续 20 秒,然后将其设置为 true,以便数据可以更新,然后我再次将其设置为 false。我发现这比显式设置 ScreenUpdates + Calculation 更好,因为我收到的更新频率很高。

问题:

我读过here,excel 在每个禁用它的方法的末尾设置了ScreenUpdating = True,这不是我需要的。

问题:

有没有办法强制 Excel 不自动启用ScreenUpdating

【问题讨论】:

  • 我不知道这个问题的答案。但我唯一的想法是研究 API。除了将 .ScreenUpdating=False 放在代码的最高层次结构之外,看看是否有解决方案会很有趣。
  • 我尝试了几种不同的方法:将所有代码放在一个模块中,在每个(是的)方法中调用 .ScreenUpdaing=False ,但这似乎都不起作用。如果我找到解决方案,我会回复。关于我可能使用的 API 的任何想法?
  • 根据我的经验(和理解),Excel不会自动重置屏幕更新、计算、显示警报或您的代码设置的任何其他内容。

标签: excel api events vba com


【解决方案1】:

看看这些对你的 API 是否有帮助

http://msdn.microsoft.com/en-us/library/ff818516%28v=vs.85%29.aspx

http://msdn.microsoft.com/en-us/library/windows/desktop/ee461765%28v=vs.85%29.aspx

我刚刚在 google 上搜索了“Microsoft api 列表”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-13
    • 1970-01-01
    • 1970-01-01
    • 2019-08-21
    • 2019-02-15
    • 1970-01-01
    • 2014-01-24
    • 1970-01-01
    相关资源
    最近更新 更多