将公式中的值解释为Excel 2010中的公式

时间:2017-07-10 15:41:35

标签: excel excel-formula excel-2010

我有一个公式,我用它来动态创建公式,以便在不同的电子表格中引用数据。

例如,我在单元格中有一个返回=<path>\[<file>]<reference>的公式。因此,单元格R496的返回值将是字符串='D:\Documents\[Filename.xls]sheet1'!$A$3

Example of formula

根据Apple Pie's answer的说法 Using the value in a cell as a cell reference in a formula ,我可以使用=INDIRECT(reference)引用公式中公式中另一个单元格的值。不幸的是,当从另一个单元格中解释完整的公式时,这似乎不起作用。

Attempting to use =INDIRECT()

Microsoft Excel 2013 and above中,我可以使用=FORMULATEXT(),但遗憾的是,该选项在Excel 2010中不可用。

=INDIRECT() not available

如何在Microsoft Excel 2010中将单元格中的值用作公式?

2 个答案:

答案 0 :(得分:1)

要返回单元格的公式而不是其值,请使用FORMULATEXT()。因此,如果 A1 包含:

=A2 + A4

然后选择一些单元格并输入:

=FORMULATEXT(A1)

enter image description here

修改#1:

如果您使用的是Excel 2010,则可以使用以下 UDF()

Public Function MyFormula(r As Range) As String
    MyFormula = r(1).Formula
End Function

修改#2:

用户定义函数(UDF)非常易于安装和使用:

  1. ALT-F11调出VBE窗口
  2. ALT-I ALT-M打开了一个新模块
  3. 粘贴内容并关闭VBE窗口
  4. 如果保存工作簿,UDF将随之保存。 如果您在2003年之后使用的是Excel版本,则必须保存 该文件为.xlsm而不是.xlsx

    删除UDF:

    1. 按上述方式调出VBE窗口
    2. 清除代码
    3. 关闭VBE窗口
    4. 从Excel使用UDF:

      = myfunction的(A1)

      要了解有关宏的更多信息,请参阅:

      http://www.mvps.org/dmcritchie/excel/getstarted.htm

      http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

      有关UDF的详细信息,请参阅:

      http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

      必须启用宏才能使其生效!

答案 1 :(得分:1)

试试这个:

=INDIRECT("'" & LEFT(CELL("filename",A487),FIND("[",CELL("filename",A487))-1) & "[" & $C496 & " " & $B496 & ".xls" & "]" & "sheet1'!$H$3")

您想要一种更通用的方法来评估公式。您将需要使用此UDF:

Function MyEvaluate(rng as range)
    MyEvaluate = rng.parent.Evaluate(rng.value)
End Function

enter image description here

开头时仍然不需要=,但也不会受伤。