我定义了一个函数,例如:
Public Function calc_x(ByVal x As Integer)
...do some stuff
calc_x = x+x
End Function
此函数在Excel工作表中从单元格(比如说A2)调用,其中“指针”指向包含值20的A1:
content cell A1: "20"
content cell A2: "=calc_c(A1)"
然而,每次我在Excel中插入新的行或列(甚至在行A或列2之后),函数都会被重新计算。有什么方法可以防止这种情况发生吗?
2条答案
按热度按时间pftdvrlh1#
可以使用
Application.Caller.Text
*(1)引用单元格的原始输出。接下来,您可以将布尔值“On/Off Switch Cell”放在某个位置。
UDF逻辑如下所示:如果布尔单元格的值为TRUE,则执行计算,否则输出CallerCell文本
下面的例子是工程和大致最简单的形式。
*Reference(1) - S/O - excel vba preserve original value if UDF formula fails
4xrmg8kj2#
在[公式]功能区中,您可以将计算选项设定为手动。
您可以在VBA中使用
Application.Calculation = xlManual
进行设定。这将使公式无法计算工作表中的每一个新添加项。