excel - 有没有办法响应Excel条件格式的变化?

标签 excel vba excel-2003 dynamic-data-exchange

我有一个 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/

相关文章:

Excel 选择案例?

VBA SaveCopyAs 带有变量的文件路径

excel - 在文件夹中打开 Excel 工作簿以复制特定工作表时出现运行时错误 9

excel - 为什么 Excel 是 COM 对象时 ActiveWindow.SplitColumn 不起作用?

c# - 有没有办法像c#一样在Excel的VBA中评论一行的一部分

Excel - VBA 每月的第一个工作日

excel - 如何将 ms excel 2003 链接到 ms access 2003

vba - Excel 2003 - 如何构建我自己的 XLA?

vba - Excel 2003(VBA) - 自定义标识符/函数/UDF

vba - 打印时如何启用订书机?