重新计算公式

时间:2015-04-19 16:44:23

标签: excel vba excel-vba

我有一个带变量的子" 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)中的值时,结果也会改变。

2 个答案:

答案 0 :(得分:3)

如果更改单元格(1,1)中的值,则必须重新计算 porcen,var1,var2,var3 以反映该更改。您可以使用事件宏自动执行此操作。

答案 1 :(得分:1)

看起来 porcen 是一个长字符串,甚至可能是从A1(又称为Cells(1,1))分配 Value 的变体。如果要将porcen锁定为A1,请将其声明为范围类型变量,并将其Set声明为A1。

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