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

我有公式,我正在使用dynamic创build公式引用单独的电子表格中的数据。

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

公式的例子

根据苹果派的答案 在一个单元格中使用单元格中的值作为单元格引用 ,我可以通过使用=INDIRECT(reference)从另一个单元格的公式中引用值。 不幸的是,从另一个单元格解释完整的公式时似乎并不奏效。

试图使用= INDIRECT()

在Microsoft Excel 2013及更高版本中 ,我将能够使用=FORMULATEXT() ,但不幸的是,该选项在Excel 2010中不可用。

= INDIRECT()不可用

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

尝试这个:

 =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 

在这里输入图像说明

开头还是没有必要,但也不会伤害。

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

 =A2 + A4 

然后select一些细胞并input:

 =FORMULATEXT(A1) 

在这里输入图像说明

编辑#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. 粘贴东西,closuresVBE窗口

如果保存工作簿,则UDF将随之保存。 如果您在2003年以后使用的是Excel版本,则必须将该文件另存为.xlsm而不是.xlsx

要删除UDF:

  1. 如上所示调出VBE窗口
  2. 清除代码
  3. closuresVBE窗口

从Excel中使用UDF:

= myfunction的(A1)

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

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

macros必须启用这个工作!