1

我希望能够在“主表”中输入公式。调用该公式时,将在调用该公式的工作表上执行该公式。

例子:

Sheet 1 (master sheet)
Col A    Col B
ABC      A1 
DEF      A2xA2
GHI      A3-A1 * .05
JKL      A4+A1

Sheet 2
Col A    Col B     Col C
5        DEF       
10       ABC
15       GHI
20       JKL

所以我想要发生的是我在 Sheet2 上的 Col B 中键入的任何内容,以相对于 Sheet 2 上的相应列执行 Sheet 1(主工作表)上的公式。所以在上面的示例中,Col C 的 Sheet 2 的第 1 行将是 25。我正在尝试VLOOKUP和的混合INDIRECT。如果它只是 Sheet1 上的单元格引用(例如 ABC),则它可以正常工作。如果我进入任何其他人,它就会爆炸。既然VLOOKUP工作正常,有什么东西可以“执行”公式或评估公式吗?或者当不仅仅是一个直接的单元格引用时,如何间接工作。

我对 VBA 解决方案不感兴趣,我想使用直接的 excel 函数。

4

1 回答 1

1

使用 VBA 很容易,因为您可以在调用 Excel 的 Evaluate 函数的模块中创建 UDF,该函数在工作表中不可用:

Function Eval(ByVal r As Range)
    Application.Volatile True
    Eval = Evaluate(r.Value)
End Function

然后,如果您将 SUM($A$1:$A$10) 作为单元格 C1 中的文本,例如,要将该文本作为另一个单元格中的公式执行,您只需输入:

=Eval(C1)

如果您确实必须避免使用 VBA,则在定义名称时可以使用 Evaluate 功能。因此,对于上面在 C1 中具有 SUM($A$1:$A$10) 的示例,您可以定义一个名为 SumCol 的新名称,该名称引用以下内容:

=Evaluate($C$1)

然后您可以将 SumCol 放入一个单元格中:

=SumCol

但我想像这样定义一堆名字会变得乏味。

于 2012-11-12T18:06:17.080 回答