Excel RTD 函数不能返回数组

文章翻译 文章翻译
文章编号: 286258 - 查看本文应用于的产品
展开全部 | 关闭全部

概要

Microsoft Excel 2002、 Microsoft Office Excel 2003,和 Microsoft Office Excel 2007 提供了一个新的工作表函数,名为 RTD。RTD 允许您调用 Microsoft 组件对象模型 (COM) 自动化服务器中检索实时数据。RTD 函数不能返回数组。如果以数组公式的形式使用 RTD 函数,则所有数组中的单元格会返回 # VALUE。

更多信息

RealTimeData (RTD) 服务器和 RTD 函数的固有的灵活性使不必要的数组公式中使用它们。在 RTD 函数可以采用任意数量的字符串或主题,以指定要显示在单元格中的数据。通过附加主题字符串编写得很好的 RTD 服务器可以返回单个值。Excel 仅必须进行单个调用到 RTD 服务器从 RTD 服务器检索所有数据。因此,这种设计不会损害性能。

与此记住您有时可能需要一个 RTD 服务器返回的某个主题的值的数组,您可能还需要的值,以分析到多个单元格的数组。在这种情况下 RTD 服务器可以返回一个字符串包含的所有值。然后,您可以使用一个 Microsoft Visual Basic 应用程序 (VBA) 函数来分析字符串,以便将数据返回到工作表作为一个数组。Excel 可以解释为一个数组的字符串格式使用 评估 方法。该字符串括在大括号、 逗号,分隔列和行之间用分号分隔。例如对于 Excel 可以将以下字符串解释为 3 行 4 列的数组:
{1,2、 3、 4; 10、 20、 30、 40; 100,200、 300、 400}
或者 Excel 可以为 2 行 5 列的数组 interpet 以下字符串:
{""、"b"、"c"、"d","e";"aa","bb"、"抄送"、"dd"、"ee"}
以下 procedue 阐释了一种技术,您可以使用用于分析到多个单元格从 RTD 服务器返回此类型的字符串。

若要这样做,请按照下列步骤操作:
  1. 下面的知识库文章中所述的 RTD 服务器的创建 vba 项目,请执行以下操作:
    285339如何为 Excel 创建 RealTimeData 服务器
  2. 项目的 RTDFunctions 类模块中替换下面的行 IRtdServer_RefreshData 函数中:
    aUpdates(1, n) = oTopic.TopicValue
    					
    代码替换下面的代码行:
    Static bToggle As Boolean
    bToggle = Not (bToggle)
    If bToggle Then
       aUpdates(1, n) = "{1,2,3;10,20,30}"
    Else
       aUpdates(1, n) = "{""a"",""b"",""c"";""d"",""e"",""f""}"
    End If
    					
  3. 生成可视的基本项目从 RTD 服务器。
  4. 在 Excel 2002 中,在 Office Excel 2003 中,或 Office Excel 2007 中,启动一个新的工作簿,然后按 ALT + F11 打开 Visual Basic 应用程序编辑器。
  5. 在 Visual Basic 应用程序项目中插入一个新的代码模块,然后添加下面的代码示例,在代码模块
    Function parseArrayData( arrayData as String ) as Variant
       parseArrayData = Evaluate( arrayData )
    End Function
    					
  6. 关闭以返回到 Excel 工作簿的应用程序编辑器 vba。
  7. 按三列范围的单元格在工作表上选择两行。
  8. 键入下面的公式,然后按 CTRL + SHIFT + ENTER 才能将其作为数组公式输入:
    =parseArrayData(RTD("ExcelRTD.RTDFunctions",,"AAA"))
  9. 在第一次的更新通知后的六个单元格的每个都包含一个唯一的编号。在第二个的更新通知后每个单元格都包含一个唯一的字符。

参考

有关 RealTimeData 服务器的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
286259安全设置和 $ Excel RealTimeData 服务器
285888如何在 DCOM 中使用一个 Excel RTD 服务器

属性

文章编号: 286258 - 最后修改: 2007年5月14日 - 修订: 3.2
这篇文章中的信息适用于:
  • Microsoft Office Excel 2007
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 标准版
关键字:?
kbmt kbinfo KB286258 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 286258
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com