【问题标题】:Using RTD with Excel 2016 on Windows 10 Does Not Refresh在 Windows 10 上将 RTD 与 Excel 2016 结合使用不会刷新
【发布时间】:2016-10-05 13:14:03
【问题描述】:

我正在尝试在 Windows 10 上将 RTD 与 Excel 2016 一起使用,并发现它不会在没有使用 VBA 编辑器中的“Application.RTD.RefreshData”强制更新的情况下刷新值。

我尝试了多个 RTD 服务器,但问题似乎只在 Excel 2016 和 Windows 10 组合中常见。 Windows 7 和 Excel 2016 按预期工作。问题仅出在 Windows 10 上。使用 Excel 2013 和 Windows 10 即可。 Excel 2016 具有所有最新更新,因此它与 2015 年底遇到的必须指定服务器的问题无关。微软随后修复了此错误。

举个简单的例子,以http://blog.learningtree.com/excel-creating-rtd-server-c/ 中描述的 RTD 服务器为例,它会在第一次输入公式时在 Excel 单元格中给出一个值,但不会自动“勾选”(刷新)该值。如果使用“Application.RTD.RefreshData”,则值会更新。

调试 RTD 服务器,似乎 Excel 2016 没有像在其他操作系统或 Excel 版本中那样调用 RefreshData()。

我在两台机器上都试过了,每次都可以复制。在 Windows 10 上运行时,不禁觉得这是 Excel 2016 中的一个错误?

【问题讨论】:

    标签: c# excel rtd vba


    【解决方案1】:

    我一直在玩“Application.RTD.ThrottleInterval”,这已经解决了它。在使用 Excel 2016 全新安装 Windows 10 时,默认值似乎是“2000”(尽管未写入注册表)。它的行为就像设置为“-1”一样。这是一种奇怪的安装行为,我现在在装有 Windows 10 和 Office 2016 的三台机器上遇到过这种情况。

    现在手动将此值设置为 2000 会给出刻度值(在重新启动 Excel 后)。它还在 Excel 会话中持续存在。那么可能是 Windows 10 上的 Excel 安装程序(或 Excel 中的 RTD 初始运行)中的问题将此值设置为 -1 而不是记录的值 2000?

    注册键: HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office[…|14.0|15.0|16.0|…]\Excel\Options\RTDThrottleInterval

    -1 -> 手动模式。从不自动刷新。必须调用 Excel.Application.RTD.RefreshData。

    0 -> 一有机会就检查更新。

    大于 0 -> Excel 在获取更新之前至少等待指定的毫秒数。

    【讨论】:

    • 说得太早了!我仍然有两个无法修复的虚拟机。我已经修复了安装了开发工具的 VM,例如Visual Studio 等,但两个安装了 Excel 2016 的干净 Win 10 VM 仍未更新。
    • 更新 Excel 2016 似乎是解决方案以及设置 ThrottleInterval。开发机器是最新的,但其他两台测试机器不是。执行此更新并且 RTD 正在工作。所以这可能是 Excel 中的一个错误,但是我仍然需要设置 ThrottleInterval 否则它仍然需要手动刷新。
    【解决方案2】:

    当我使用 RTD 服务器时,我发现有时 RTD 连接问题与 UAC 有某种关系,而提升服务器的权限只会使问题消失。

    【讨论】:

      猜你喜欢
      • 2016-11-23
      • 1970-01-01
      • 2018-10-18
      • 2021-08-29
      • 2020-11-13
      • 2020-03-18
      • 2018-01-24
      • 2023-03-07
      相关资源
      最近更新 更多