Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 重新计算公式_Vba_Excel - Fatal编程技术网

Vba 重新计算公式

Vba 重新计算公式,vba,excel,Vba,Excel,我有一个变量为“porcen”的Sub,如下所示: 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 &

我有一个变量为“porcen”的Sub,如下所示:

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)中的值,公式的结果保持不变

我希望当我更改单元格(1,1)中的值时,结果也会更改。

看起来porcen是一个长字符串,甚至可能是一个变量,它从A1(也称为单元格(1,1))中分配了值。如果要将porcen锁定为A1,请将其声明为范围类型变量,然后
将其设置为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
它看起来像是一个长字符串,或者甚至是一个从A1(也称为单元格(1,1))中赋值的变体。如果要将porcen锁定为A1,请将其声明为范围类型变量,然后
将其设置为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

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

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

当然,假设您只需省略设置
Var1
Var2
Var3
的代码,然后根据
porcen
的值,Gary的学生的答案将是正确的。您必须输入您编写的代码(或者更好的是,调用它),然后输入该工作表的
Worksheet\u OnChange
事件。如果您不知道,那么Excel就不知道在
单元格(1,1)
的值发生变化时触发对函数的调用。当然,假设您只是省略了设置
Var1
Var2
Var3
的代码,那么
Gary的学生的答案是正确的。您必须输入您编写的代码(或者更好的是,调用它),然后输入该工作表的
Worksheet\u OnChange
事件。如果不知道,则当
单元格(1,1)
的值更改时,Excel不知道触发对函数的调用。