2015-04-19 114 views
0

我與變量「porcen」的分這樣的:重新計算式

Dim porcen as Integer 
porcen = Cells(1, 1).Value 

一些計算之後我有3個變量。 Var1,Var2和Var3取決於變量porcen。

ActiveCell.FormulaR1C1 = "=(IF(R[" & var1 & "]C="""","""",((COUNTIF(R[" & var1+ 1 + var2 & "]C:R[" & var1 + 1 & "]C,R[" & var1 & "]C))-(COUNTIF(R[" & var3 & "]C:R[-5]C,R[" & var1 & "]C)))/(" & var2 & ")))" 

我不知道爲什麼如果我改變單元格(1,1)的值,公式的結果保持不變。

我希望當我改變Cell(1,1)的值時,結果也會改變。

+0

當然,假設您只是根據porcen的值忽略了設置'Var1','Var2'和'Var3'的代碼,那麼'Gary's Student'的答案是正確的。你必須把你寫的代碼(或者更好的方法是調用它),然後是該工作表的'Worksheet_OnChange'事件。如果你不這樣做,那麼當'Cells(1,1)'的值改變時,Excel不知道觸發你的函數的調用。 – FreeMan

回答

3

如果您在值細胞(1,1)改變,你必須重新計算porcen,VAR1,VAR2,VAR3來反映這種變化。您可以使用事件宏自動執行此操作。

1

它看起來像porcen是一個長期的,串或者甚至是被分配價值從A1變體(又稱細胞(1,1))。如果要將porcen鎖定爲A1,請將其聲明爲範圍類型變量,並將其作爲A1輸入Set

dim porcen as range 
set porcen = cells(1, 1) 

' do stuff with porcen.Value or porcen.Row or porcen.Column, etc just like a cell 

' some say you don't have to do the next step before exiting the sub. I do it anyways. 
set porcen = nothing