你目前正处于脱机状态,正在等待 Internet 重新连接

XL2002:如何设置和使用 RTD 函数

本文的发布号曾为 CHS289150
概要
Microsoft Excel 2002 提供一个新的工作表函数,即 RealTimeData (RTD),它使您能够调用组件对象模型 (COM) 自动化服务器来实时检索数据。本文讨论 RTD 提供的新功能。
更多信息
当您需要创建包含实时更新数据(例如,财务数据或科学数据)的工作簿时,现在就可以使用 RTD 工作表函数。在 Excel 的早期版本中,动态数据交换 (DDE) 用于此目的。但是,基于 COM 技术的 RTD 函数,在稳定性、可靠性和方便性方面更具优势。RTD 依靠 RTD 服务器的可用性使实时数据可用于 Excel。有关创建 RTD 服务器的更多信息,请参见本文的“参考”一节。

RTD 函数从 RTD 服务器检索数据以用于工作簿中。每当服务器中有了新数据而且工作簿能够接受它时,该函数的结果就会更新。在更新之前,服务器会一直等待到 Excel 空闲为止,这样开发人员就不必确定 Excel 是否可用于接受更新。在这一点上,RTD 函数不同于其他函数,因为其他函数只有在工作表重新计算时才会更新。

虽然 RTD 函数提供指向服务器上数据的链接,但它与对其他工作表或工作簿中数据的引用不是同一类型的链接。例如,如果您在工作簿中使用 RTD 函数,则当您打开工作簿时就不会收到“链接”启动消息,也不能通过编辑链接对话框来管理 RTD 函数。

语法



RTD 函数使用下列语法
=RTD(RealTimeServerProgID,ServerName,Topic1,[Topic2], ...)
其中,函数参数如下所示:
  • RealTimeServerProgID

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

    一个字符串,表示 RTD 服务器所在的服务器的名称。如果 RTD 服务器在本地运行,ServerName 就应为空字符串 ( "" ) 或被忽略。
  • Topic1, [Topic2], ...

    一些字符串,用于标识正在检索的数据。可以使用从 1 到 28 个主题,尽管只需要 1 个主题。

使用 RTD



作为 RTD 函数的一个示例,假设从一台服务器中检索信息,该服务器提供几场同时进行的赛跑中参赛者的连续数据。假定服务器是作为名为 RaceReport.dll 的动态链接库 (DLL) 提供的,而且它安装在用户的计算机上,并由自己的安装过程注册为 COM 加载宏。当用于此服务器时,RTD 函数的一般形式如下所示
=RTD("MyRTDServerProdID","MyServer","RaceNum","RunnerID","StatType")
其中,主题 RaceNum、RunnerID 和 StatType 标识所针对的比赛、其数据为必需数据的参赛者以及函数特定用法的数据类型。

在此,用户可以选择一个单元格,并在其中键入下列公式
=RTD("ExcelRTD.RaceReport","","2","16","Time")
然后,查看在第 2 场比赛中第 16 号参赛者当前所对应的消失时间。主题的数量和相关数据的性质由 COM 服务器的开发人员确定。例如,如果您使用下列 RTD 函数,比赛报告服务器可能提供不同数据:
=RTD("ExcelRTD.RaceReport","","3","25","Position")
这种情况下,返回的数据表明在第 3 场比赛中第 25 号参赛者的当前位置。

这样一来,同一个函数在整个工作簿中可以有略微不同的使用方法,从而从同一服务器上检索不同数据,所有数据都会自动更新。

封装简化使用



RTD 函数可以用在 Microsoft Visual Basic for Applications 中用户定义函数 (UDF) 的内部,这样 UDF 就成为 RTD 函数的封装程序。这种方法可以用来对用户隐蔽 RTD 服务器名称和 ProgID 的详细资料,还可以用来允许用户只关注对自己重要的数据。

例如,在前一种情况下,可以向用户提供两个函数:GetTime(RunnerID) 和 GetPosition(RunnerID)。这两个函数假定用户总是处理同样的服务器和同样的比赛编号,因此用户只须指定参赛者的 ID 就可以分别检索有关参赛者的消失时间和位置的当前数据。

计算



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

安全性



RTD 服务器被 Excel 的安全性功能认为是宏。此功能的含义是,如果您的安全性设为,RTD 服务器就不可用,除非它经过数字签名而且可信,那些依赖于 RTD 服务器的单元格将显示下列内容:
#N/A
如果您的安全性设为,那么在打开使用 RTD 函数的工作簿(文件名)时,就会出现下列错误消息
文件名 中含有宏。
宏可能带有病毒。禁用宏总是最安全的,但如果宏是合法的,您可能会失去某些功能。
参考
有关 RTD 和 Excel 安全性的其他信息,请单击下列文章编号,查看相应的 Microsoft Knowledge Base 文章:
286259 INFO: Security Settings and Excel RealTimeData Servers
有关创建 RTD 服务器的其他信息,请单击下列文章编号,查看相应的 Microsoft Knowledge Base 文章:
285339 HOWTO: Create a RealTimeData Server for Excel 2002
prb XL2002 inf
属性

文章 ID:289150 - 上次审阅时间:05/21/2001 12:13:00 - 修订版本: 1.0

Microsoft Excel 2002 标准版

  • kbhowto kbinfo kbdta KB289150
反馈