【发布时间】:2020-12-10 20:33:21
【问题描述】:
不确定这是否是提出这个问题的正确论坛,如果这对 SO 来说太具体(即财务-y),对不起。我以前没有使用过 excel-DDE,我在网上找不到任何与我的问题相似的东西。
我正在使用 TradeBase MX 从交易所获取实时报价。 TBMX 有一个 excel-DDE api 来获取例如通过=@TBMX|QUOTE!US0378331005.xtr.bid 在 xetra 上的苹果报价。我想根据另一个单元格中的 ISIN US0378331005 自动生成这个公式。问题是我可以通过=CONCATENATE("=@TBMX|QUOTE!", A1,".xtr.bid")生成上述公式,如果单元格A1包含ISIN,但excel不会执行公式,即它不会在单元格中显示投标报价。它只会将=@TBMX|QUOTE!US0378331005.xtr.bid 显示为单元格中的文本。我尝试通过
Public Function eval(s As String) As Variant
eval = Evaluate(s)
End Function
但=eval(CONCATENATE("=@TBMX|QUOTE!", A1,".xtr.bid")) 也无法正常工作。这种方法只会在计算时更新一次报价,并且只有当我在另一个单元格中硬编码=@TBMX|QUOTE!US0378331005.xtr.bid 时,即如果 DDE 数据已经被 excel 调用。不确定如何使用公式获得所需的功能。我希望excel在单元格中生成公式后执行DDE-resquest。
这是否只能通过 VBA 宏实现,该宏生成公式并通过 .formula = "=@TBMX|QUOTE!US0378331005.xtr.bid" 分配它?很抱歉,由于我使用的特定软件 TBMX,我的问题缺乏可重复性,但我不知道在这里尝试什么,因为我对 DDE 请求的幕后情况了解不够。
【问题讨论】:
标签: vba excel-formula dde