1

这是从不涉及 VBA 的 excel 工作表中获取的。有什么方法可以重构

=IF(ISERROR(function_return),something_else,function_return)

这样该术语function_return将只明确说明一次。因为function_return可能有很多参数我只想在一个地方调整,而不是在两个实例中调整。在其他语言中,我会尝试使用

var foo = function_return(many_many_arguments)
=IF(ISERROR(foo),something_else,foo)

这样的事情可以在一个细胞内实现吗?

谢谢你的帮助。

4

2 回答 2

1

如果您使用的是 Excel 2007 及更高版本,则有一个功能可以完全执行此操作 - 查看iferror()

于 2012-11-26T20:33:31.773 回答
1

不确定我的解释是否正确(如果是这样,请忽略:)),但听起来您可以使用命名范围来模拟它。例如,如果我有函数=SUM(A1:A5),我可以创建一个Foo等于的命名范围=SUM(A1:A5)。然后,我可以写一个像这样的公式:

=IF(ISERROR(Foo),"Something else",Foo)

如果Foo计算正确,它将返回该值;否则,它将返回“其他东西”。您可以扩展Foo以涵盖您尝试计算的任何公式。然后,您可以Foo在任何公式中使用,而无需重新输入范围。

在此处输入图像描述

于 2012-11-26T20:08:50.297 回答