模仿bdh函数填充下来

当一个查询被input到Excel中的彭博BDH函数中时,它会自动填充所选的单元格,以及下面的单元格与请求的数据。

我试图创build一个类似的function(虽然有不同的数据源)。 BDH函数在填充查询数据时如何绕过用户定义的修改其他单元格的典型限制?

你需要分两步进行:

  1. 你的函数调用另一个进程来计算值,并只返回要返回的数组的第一个元素(可以是“#NA #NA”或date或价格等

  2. 被调用的进程可以在单独的RTD服务器上运行(查看实时数据服务器),或者通过DDE链接到电子表格的单独进程。 (彭博使用DDE的一些function,RTD的其他人,我认为)

  3. 这样,当你调用一个函数时,第一个值被立即返回(即回答,或者“#NA Requesting Data …”),然后当RTD服务器获取所需的数据时,这个函数的答案会改变,左边的数组元素是,而其余的单元格通过DDE / RTD填充。

在Microsoft的知识库上find设置RTD服务器的简单示例。 此外,使用Googlesearch引擎(DDE)(使用Excel进行金融数据交换的一种较旧但非常stream行的技术,即使在今天)也有大量的例子。

一个简单的填充应用程序可以使用C#或VB.net Interop(再次search示例)来构build。

希望这可以帮助。

编辑 :你也可以完全使用VBA,通过使用OnTimefunction(请参阅http://www.cpearson.com/excel/OnTime.aspx )的一些聪明的组合,并结合DDE驱动从一个单独的电子表格(查找Tushar Mehta DDE时钟,一个非常古老的例子,但有些东西永远不会改变!)