我正在用c ++编写一组函数,可以通过excel调用。但是,这些函数是异步的,因此没有可用的立即返回值。一旦结果可用,我就通过VBA使用了一个回调函数,它将结果更新到调用函数的相关单元格。
但是,这里我有循环函数调用问题,因为当我更新单元格时。 excel再次自动调用原始函数。请帮我解决这个问题
谢谢
答案 0 :(得分:1)
如果不了解有关程序数据流的更多信息,则无法详细回答。何时调用c ++函数,将哪些数据传递给它们以及何时更新相关单元格?
无论如何,你是如何调用C ++函数的?如果是通过VBA,请尝试关闭自动计算:
MyWorkSheet.EnableCalculation = False
然后在回调结束时将其重新打开:
MyWorkSheet.EnableCalculation = True
答案 1 :(得分:0)
如果您可以使用代码示例来解释您正在尝试做什么,那就更好了。
是什么意思
传递当前的单元格引用
如果我的理解是正确的,那么你试图再次将函数的返回值传递给函数本身。这是一个循环参考。因为,当函数返回一个值时,单元格值会更新,然后导致重新评估任何具有更新的单元格引用的函数作为输入参数,导致函数在循环中调用!