让我们说单元格A1有一个DDE链接," = dde(realtime_stock_price"。每次更新时如何将值发送到列的新行?Change()函数不起作用,因为它不是用户在进行更改。我尝试了Calculate()函数,但不太确定如何实现它。
答案 0 :(得分:0)
公式" = dde()"不是我熟悉的东西。但是,您可以创建自己的dde函数来调用事件代码...
HiringFactor parentFactor = db.HiringFactors.AsNoTracking().Find(parentId);
根据this question,传递给Public Function dde2(ByVal app as string,ByVal topic as string,ByVal item as string) as variant
with Application
channelNumber = .DDEInitiate(app,topic)
dde2 = .DDERequest(channelNumber, "Topics")
.DDETerminate(channelNumber)
end with
on error resume next 'incase macro doesn't exist
Application.run "dde2_postExec", dde2
on error goto 0
End Function
Sub dde2_postExec(ByVal message as string)
'do stuff...
end sub
的字符串为=DDE()
。或者在我们的例子中:"Service|Topic!Item"
可以很容易地从字符串中提取。但请注意DDE()
is NOT a native function of excel。因此,我们不太可能知道"App|Topic!Item"
如何制定清洁解决方案。
根据您的评论,说DDE正在播放DDE()
,您想要输出"12...13...14..."
,B1 = 12
和B2=13
。你的代码就像这样[未经测试]:
B3=14
但请注意,如果将其作为公式调用,则可能无效。 VBA运行时的设计使得在评估forumla时,除了调用它们的单元格之外,它们不能将值写入工作表中的单元格。因此,您可能会被迫进入工作表事件而不是使用公式计算事件。