欢迎登陆真网站,您的到来是我们的荣幸。 登陆 注册 忘记密码? ☆设为首页 △加入收藏
欢迎加入真幸福QQ群
电脑知识: 基础知识 网络技术 操作系统 办公软件 电脑维修 电脑安全 windows7 windows8 windows10 服务器教程 平板电脑 视频播放教程 网络应用 互联网 工具软件 浏览器教程 QQ技巧 输入法教程 影视制作 YY教程 wps教程 word教程 Excel教程 PowerPoint
云南西双版纳特产小花糯玉米真空包装


Excel累加、叠加的计算方法
正弦函数sin在Excel中的使用方法
Excel的info函数
360安全卫士如何清理插件?
360安全卫士为什么要清理插件?
排位函数PERCENTRANK如何使用
在Excel中以班级号为参照求所有同学各科成绩的总和
AREAS函数的使用
限制Excel使用所有的粘贴方法
excel中的cos函数
excel RTD函数实际例子及语法
【 来源:网络 】【 点击:1 】 【 发布时间:2017_03_03 08:59:59 】

  一、RTD函数语法

  RTD(ProgID,server,topic1,[topic2],...)

  函数功能:全部显示全部隐藏从支持 COM 自动化 (COM 加载项:通过添加自定义命令和指定的功能来扩展 Microsoft Office 程序的功能的补充程序。COM 加载项可在一个或多个 Office 程序中运行。COM 加载项使用文件扩展名 .dll 或 .exe。)的程序中检索实时数据。

  参数说明

  ProgID 已安装在本地计算机上、经过注册的 COM 自动化加载宏 (加载项:为 Microsoft Office 提供自定义命令或自定义功能的补充程序。)的 ProgID 名称,该名称用引号引起来。

  server 运行加载宏的服务器的名称。如果没有服务器,程序是在本地计算机上运行,那么该参数为空白。否则,用引号 ("") 将服务器的名称引起来。如果在 Visual Basic for Applications (VBA) (Visual Basic for Applications (VBA):Microsoft Visual Basic 的宏语言版本,用于编写基于 Microsoft Windows 的应用程序,内置于多个 Microsoft 程序中。) 中使用 RTD,则必须用双重引号将服务器名称引起来,或对其赋予 VBA NullString 属性,即使该服务器在本地计算机上运行。

  topic1, topic2,... 为 1 到 253 个参数,这些参数放在一起代表一个唯一的实时数据。

  必须在本地计算机上创建并注册 RTD COM 自动化加载宏。如果未安装实时数据服务器,则在试图使用 RTD 函数时将在单元格中出现一则错误消息。如果服务器继续更新结果,那么与其他函数不同,RTD 公式将在 Microsoft Excel 处于自动计算模式下进行更改。

  二、RTD函数实际例子

  =parseArrayData(RTD("ExcelRTD.RTDFunctions",,"AAA"))

  =RTD("MyComAddIn.Progid",,"LOREM_IPSUM","Price")

  在Excel 中使用RTD非常简单,Excel 提供了一个新的工作表函数 RTD,此函数允许通过调用组件对象模型 (COM) 自动化服务器来实现实时数据检索。RTD 工作表函数使用以下语法:

  "=RTD(ProgID, Server, String 1, String 2, ... String n)"

  第一个变量 ProgID 表示Real-Time Data 服务器(RTD Server)的编程标识符 (ProgID)。Server 变量指示运行RTD Server的计算机的名称;如果RTD Server在本地运行,则可以将此变量设置为空字符串或将其忽略。其他变量只表示发送到RTD Server的参数;这些参数的每个唯一组合都表示一个“主题”(topic),每个“主题”有一个关联的“主题 ID”(topic id)。这些参数区分大小写。例如,以下内容演示将生成三个不同主题ID的RTD Server调用:

  =RTD("ExcelRTD.RTDFunctions",,"AAA", "10")

  =RTD("ExcelRTD.RTDFunctions",,"AAA", "5")

  =RTD("ExcelRTD.RTDFunctions",,"aaa", "5")

  要使用 Excel 的 RTD 函数,必须注册一个实现 IRTDServer 接口的COM组件。实现这个接口的COM组件就是所谓的RTD Server。IRTDServer具有以下成员:

  ServerStart(CallbackObject)

  CallbackObject 是一个IRTDUpdateEvent类型的参数,它有一个UpdateNotify方法,用于通知Excel有更新的数据可用(push)。这样Excel就会通过调用RefreshData方法来刷新所有的主题(pull)。当 Excel 请求RTD Server的第一个 RTD 主题时调用ServerStart方法,该方法会在成功时返回 1,并在失败时返回负值或 0。这个方法在随后应用其他RTD函数时不会再次被调用。

  ConnectData(TopicID, Strings, GetNewValues)

  其中,TopcID 唯一标识这个函数在Excel中的一个应用,即使复制多份到不同的单元格,对于Excel来讲,也只是对应一个主题。这个 topicID 由Excel返回,我们需要将其记录下来,以便为其提供更新的数据。Strings 是一个System.Array,用于接收RTD函数传入的参数(String 1...String n),这是一个引用类型的参数。GetNewValues 用于确定是否总是获取最新数据,如果这个参数传入true,则每次保存Excel文档以后,再次重新打开时,看到的不一定是上次保存时的数据,而是最新的实时数据,这也是一个引用类型的参数。

  每当一个新的主题(Topic)被应用到Excel,ConnectData都会被调用。在这里,需要保存传入的新的TopicID和查询参数以供之后更新数据使用。为此,需要定义好自己的数据结构。

  DisconnectData(TopicID)

  与ConnectData一样,TopcID 唯一标识这个函数在Excel中的一个应用。当我们从Excel中移除一个主题(删除所有采用相同参数的RTD函数)之后,DisconnectData将被调用,在这里,可以释放对这个主题的监控,并不再为其获取新数据。

  Heartbeat

  确定RTD Server是不是依然可用,0和负数代表不可用,1代表可用。Excel会调用此方法确定服务是否断连。

  RefreshData(TopicCount)

  TopicCount表示要更新的主题数量,这是一个引用类型的参数,用于返回给Excel。我们可以定义一个时钟,用于定时向数据源获取数据,这样,在时钟的Elapsed事件中,获取最新数据,并调用xlRTDUpdate成员的UpdateNotify方法以通知Excel,新的数据准备完毕。这样Excel就会调用RefreshData方法,来对工作簿中的数据进行更新。

  ServerTerminate

  当Excel不再需要从RTD Server获取实时数据时被调用。在这里,可以执行一些清理,例如清除缓存,关闭时钟等等。至此,一个RTD Server的生命周期就结束了。

本网站由川南居提供技术支持,fkzxf版权所有 浙ICP备12031891号
淳安分站 淳安分站