2013-02-18 93 views
0

我正在開發一個文檔級別的excel項目。這是第三個版本。Excel c#問題 - 公式未被重新計算

其中一個工作表包含一個列表對象(從數據庫提供的數據)。然後是細胞包含像下面

this.Range式[ 「F15」]。式= 「= COUNTIFS(HotList_ListObject [產品],E15,HotList_ListObject [Got_Interest] \」 <> \ 「)」

以前,我通過拖放創建了表格。然後在工作表中簡單地創建一個公式。並將公式重新計算爲listobject(上面的HotList_ListObject)中的數據。

這次,我通過代碼創建了表。因爲Hotlist_ListObject在應用程序運行之前不在工作表中,所以我在通過代碼創建listobject之後提供公式。

我通過互聯網看了一下,做了幾個測試。

當我按下F9,SHIFT + F9和CTRL + ALT + F9,它不會重新計算。

只有當我按CTRL + SHIFT + ALT + F9,它重新計算

我發現CTRL + SHIFT + ALT + F9的explantion是

重新檢查相關公式,然後計算所有所有公式打開工作簿,無論它們是否從上次更改過。

看起來,因爲公式是由代碼在工作表中提供的,所以它不會創建到依賴公式的鏈接,因此它不會重新計算。 (這樣的事情,我想)

我的用戶每次修改/添加/刪除列表中的記錄時都不會按下按鈕。

我該怎麼做才能解決這個問題?如何告訴Excel公式需要重新計算每次在listobject中發生的任何更改。

感謝您的任何建議提前!

親切的問候 馬克

+0

你到底是怎麼回事?你設法解決它嗎? – 2013-05-06 21:41:42

回答

1

是否計算設置爲手動:

xlApp.Calculation = XlCalculation.xlCalculationManual; 
xlApp.ScreenUpdating = false; 
xlApp.DisplayAlerts = false; 
xlApp.UserControl = false; 
xlApp.EnableEvents = false; 

然後填充您的Hotlist_ListObject (這不是工作,直到應用程序運行上)然後設置計算爲自動:

xlApp.Calculation = XlCalculation.xlCalculationAutomatic; 
xlApp.ScreenUpdating = true; 
xlApp.DisplayAlerts = true; 
xlApp.UserControl = true; 
xlApp.EnableEvents = true; 

解決問題?如果不是,你可以發佈一些裸露的骨骼代碼來說明這個問題。

+0

+ 1我也覺得這是造成這個問題的計算設置。 – 2013-02-18 08:55:57

+0

不,這不能解決問題。 – HeinrichStack 2013-05-06 12:51:23

+0

@ HeinrichStack這是Mark的一個問題。我不知道它沒有解決什麼問題。也許你需要通過點擊頁面右上角的按鈕來提出一個「新問題」。 – 2013-05-06 21:41:08

0

您是否檢查選項設置?這可能是由宏被重置爲手動(與宏編輯器檢查使用Alt鍵 + F11xlCalculateManual,並確保執行設置calaculations回自動宏沒有Application.Calculation = xlCalculationAutomatic前停了下來。至於計算斷是最常用的方法來加速宏,但是當中途退出宏時,此手動計算設置將保持不變。

這是手動設置。

enter image description here