如何在 Excel 中设置和使用 RTD 函数

摘要

注意

在 Excel M365 版本 2002 或更高版本中,RealTimeData (RTD) 函数的性能得到了极大的增强。 有关详细信息,请参阅 Excel 性能和限制改进

本文介绍 RealTimeData (RTD) 函数提供的功能。 Microsoft Office Excel 提供工作表函数 RealTimeData (RTD) 。 此函数使你能够调用组件对象模型 (COM) 自动化服务器来实时检索数据。

当必须创建包含实时更新的数据(例如财务数据或科学数据)的工作簿时,现在可以使用 RTD 工作表函数。 在早期版本的 Excel 中,动态数据交换 (DDE) 用于此目的。 RTD 函数基于 COM 技术,在可靠性、可靠性和便利性方面具有优势。 RTD 取决于 RTD 服务器的可用性,使实时数据可用于 Excel。 有关如何创建 RTD 服务器的详细信息,请参阅“引用”部分。

RTD 函数从 RTD 服务器检索数据,以便在工作簿中使用。 每当新数据从服务器可用并且工作簿可以接受它时,函数结果就会更新。 在更新之前,服务器将一直等待 Excel 处于空闲状态。 这样,开发人员就无需确定 Excel 是否可用于接受更新。 RTD 函数在这方面与其他函数不同,因为其他函数仅在重新计算工作表时更新。

尽管 RTD 函数提供指向服务器上数据的链接,但它与引用其他工作表或工作簿中单元格的链接类型不同。 例如,如果在工作簿中使用 RTD 函数,则打开工作簿时不会收到“链接”启动消息,也无法通过“编辑链接”对话框管理 RTD 函数的状态。

语法

RTD 函数使用以下语法

=RTD (RealTimeServerProgID,ServerName,Topic1,[Topic2], ...)

其中函数参数如下所示:

  • RealTimeServerProgID

    一个字符串,表示安装在本地系统上的 RTD 服务器的程序 ID。 这通常是由设置过程或使用 RegSvr32 注册的 COM 加载项。 RealTimeServerProgID 是必需参数。

  • ServerName

    一个字符串,表示要运行 RTD 服务器的服务器的名称。 如果 RTD 服务器在本地运行,则 ServerName 应为空字符串, (“”) 或省略。

  • Topic1, [Topic2], ...

    确定要检索的数据的字符串。 可以使用 1 到 28 个主题,但只需要一个主题。

使用 RTD

作为 RTD 函数的一个示例,请考虑从服务器检索信息,该服务器为多个同时运行的运行器提供连续数据。 假设服务器作为名为 RaceReport.dll 的动态链接库 (DLL) 提供,它安装在用户的计算机上,并且它通过其自己的设置过程注册为 COM 加载项。 用于此服务器的 RTD 函数的一般形式可能如下所示

=RTD (“MyRTDServerProdID”,“MyServer”,“RaceNum”,“RunnerID”,“StatType”)

其中,主题 RaceNum、RunnerID 和 StatType 分别确定感兴趣的种族、需要其数据的运行器以及函数的特定用途的数据类型。

在这里,用户可以选择一个单元格并在其中键入以下公式

=RTD (“ExcelRTD.RaceReport”,“”,“2”,“16”,“Time”)

查看运行器编号 16 在比赛编号 2 中的当前运行时间。 主题数和关联数据的性质由 COM 服务器的开发人员确定。 例如,如果使用以下 RTD 函数,则争用报表服务器可能会提供不同的数据:

=RTD (“ExcelRTD.RaceReport”,“”,“3”,“25”,“Position”)

在这种情况下,返回的数据指示运行器编号 25 在比赛编号 3 中的当前位置。

通过这种方式,可以在整个工作簿中以不同的方式使用同一函数,从同一服务器检索不同的数据,所有这些数据都会自动更新。

简化使用的包装器

RTD 函数可在 Microsoft Visual Basic for Applications 中的 UDF) (用户定义的函数中使用。 然后,它们将成为 RTD 函数的包装器。 此方法可用于保护用户免受 RTD 服务器名称和 ProgID 详细信息的影响,并使他们能够仅关注对他们很重要的数据。

例如,在前面的方案中,可能会向用户提供两个函数:GetTime (RunnerID) 和 GetPosition (RunnerID) 。 这些函数假定用户始终处理相同的服务器和争用号码。 因此,用户只需指定运行器的 ID 即可分别接收运行器的运行时间和位置的当前数据。

计算

由于 RTD 在 Excel 空闲时会更新数据,因此如果 Excel 处于手动计算模式,它将继续接收信息。 在这种情况下,将缓存新数据,并在执行手动计算时使用当前值。

安全性

RTD 服务器应进行数字签名。 如果未对 RTD 服务器进行数字签名,则服务器可能无法加载,#N /A 将显示在单元格中, (引用 RTD 服务器) 。

对于 Microsoft Office Excel 2007,可以使用信任中心查看安全设置。 可通过从“Excel 选项”对话框中的“信任中心”选项卡访问此功能。

对于 Microsoft Office Excel 2003 和 Microsoft Excel 2002,可以通过调整 Excel 中的宏安全设置来更改加载行为。

References

有关 RTD 和 Excel 安全性的详细信息,请参阅 如何在 Excel 中设置和使用 RTD 函数

有关创建 RTD 服务器的详细信息,请参阅 如何为 Excel 创建 RealTimeData 服务器