在Windows 10上使用RTD和Excel 2016不会刷新

时间:2016-10-05 13:14:03

标签: c# excel excel-vba rtd vba

我试图在Windows 10上使用RTD和Excel 2016,并发现它没有使用" Application.RTD.RefreshData"强制更新时不刷新值。在VBA编辑器中。

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

举一个简单的例子,拿一个像http://blog.learningtree.com/excel-creating-rtd-server-c/中描述的那样的RTD服务器,它会在首次输入公式时在Excel单元格中给出一个值,但不会#34;勾选" (自动刷新)值。如果" Application.RTD.RefreshData"使用值更新。

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

我已经在两台机器上试过这个并且每次都可以复制它。在Windows 10上运行时,无法感觉这是Excel 2016中的错误吗?

2 个答案:

答案 0 :(得分:0)

我一直在玩“Application.RTD.ThrottleInterval”,这已经解决了。在使用Excel 2016彻底安装Windows 10时,默认值显示为“2000”(尽管未写入注册表)。它的行为类似于设置为“-1”。这是一个奇怪的安装行为,我现在在使用Windows 10和Office 2016的三台计算机上遇到过这种情况。

现在手动将此值设置为2000会给出滴答值(重启Excel后)。它也可以在Excel会话中保留。因此,在Windows 10上Excel安装程序(或Excel中的RTD初始运行)中的问题可能将此值设置为-1而不是记录的2000值?

Reg键: HKEY_CURRENT_USER \ SOFTWARE \微软\办公室[... | 14.0 | 15.0 | 16.0 | ...] \ EXCEL \选项\ RTDThrottleInterval

  

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

     

0 - >每次有机会检查更新。

     

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

答案 1 :(得分:0)

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