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

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

我已经尝试了几个RTD服务器,并且这个问题通常只出现在Excel 2016和Windows 10的组合中。 Windows 7和Excel 2016按预期工作。 问题只在于Windows 10.使用Excel 2013和Windows 10是可以的。 Excel 2016包含所有最新的更新,因此与2015年底发生的服务器必须指定的问题无关。 这个bug随后被微软修复。

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

debuggingRTD服务器,看起来Excel 2016并不像在其他操作系统或Excel版本中那样调用RefreshData()。

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

我一直玩“Application.RTD.ThrottleInterval”,并已修复它。 在使用Excel 2016的全新安装的Windows 10上,默认值显示为“2000”(尽pipe未写入registry)。 它的行为就像设置为“-1”。 这是奇怪的安装行为,我已经在Windows 10和Office 2016的三台机器上体验到了这一点。

现在手动将此值设置为2000,即可重新启动Excel。 它也在Excel会话中持续存在。 因此,在Windows 10中,Excel安装程序(或Excel中RTD的初始运行)中的问题可能是将此值设置为-1,而不是logging的值2000?

registry项:HKEY_CURRENT_USER \ SOFTWARE \ Microsoft \ Office [… | 14.0 | 15.0 | 16.0 | …] \ Excel \ Options \ RTDThrottleInterval

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

0 – >检查更新每一个机会。

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