我有一个 Excel 工作表,其中包含指向实时市场数据的 dde 链接。我使用计时器每秒观察 dde 价格。然后在满足某些条件时提交订单。我尝试使用中间的 DoEvent 进行无限循环,该循环运行 5 秒,然后卡住工作簿。
有没有办法响应 dde 更新中的变化?更改事件不会检测到它们。它仅检测用户何时进行手动更改。
有人告诉我,如果我有条件格式,就有办法获取该事件。因此,我可以创建一个单元格公式,在满足条件时将其变为真,然后在条件成立时将该单元格的条件格式设置为某种格式,然后拾取格式更改事件。那可能吗?如果是这样怎么办。任何建议,将不胜感激。
澄清一下:我想在 VBA 中选取一个事件,该事件将提交股票交易订单。我现在执行此操作的方法是使用一个计时器,该计时器循环遍历所有行以查找触发列中的真实单元格。一旦找到,它就会关闭该行的标志(将 true 条件设置为 false)并提交订单。
问题在于,对于快速变化的股票来说,一秒就是永恒。因此,当触发器列中的单元格变为 true 时,我需要在 VBA 中引发一个事件,以便我可以立即响应,而不是等待计时器类的第二个间隔。
据我所知,你不能调用小于一秒的计时器。如果我可以使用毫秒,我的问题就会得到解决。我只是每 10 毫秒循环一次该列表。
据我所知,我无法在 VBA 中创建另一个线程。如果可以的话,我会创建一个无限循环,并在每次迭代后将其置于 sleep 状态 10 毫秒左右。
据我所知,我无法将 dde 直接拉入 VBA 甚至 .net 中,因为 MSDN 表示不再支持它。
我希望这能澄清。感谢所有建议。
最佳答案
如果您创建一个以 DDE 输出单元格作为参数的虚拟函数,那么您应该能够响应 Worksheet_Calculate
事件?
我猜这可能有效,但我没有使用 DDE 的经验:DDE 更新甚至可能直接触发计算事件。
关于excel - 有没有办法响应Excel条件格式的变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11655763/