2010-03-03 93 views
0

我正在寫一組函數,它可以被excel調用。但是,這些函數是異步的,因此沒有可用的立即返回值。一旦結果可用,我使用VBA的回調函數將結果更新到調用函數的相關單元。excel單元格更新時如何避免循環引用

但是,這裏我有循環函數調用問題,因爲當我更新單元格。 excel會再次自動調用原始函數。請幫我解決這個問題

謝謝

回答

1

不知道更多關於你的程序的數據流量,這是不可能詳細回答。什麼時候調用C++函數,哪些數據傳遞給它們以及何時更新相關單元格?

無論如何,你如何調用C++函數?如果通過VBA的,請嘗試關閉自動計算:

MyWorkSheet.EnableCalculation = False 

,然後在回調結束重新打開它於:

MyWorkSheet.EnableCalculation = True 
0

這是更好,如果你可以把一個代碼示例解釋你正準備做什麼。

你是什麼意思由

傳遞當前單元格引用

如果我的理解是正確的,你正試圖再次通過功能函數本身的返回值。這是一個循環參考。因爲當函數返回一個值時,單元格值得到更新,這會導致重新評估任何具有更新單元格引用的函數作爲輸入參數,從而導致函數在循環中調用!