评估包含命名范围的文本
如何评估包含命名范围的文本string ? 我尝试了EVAL,EVALUATE和INDIRECT没有成功。
多一点..
对于另外一个系统,我有50多个variables,有200多个variables,下面是一个例子:
<ABC>+<DEF>/<TRE-1>
为了能够在Excel中同时使用它们,而无需手动更改每个公式,variables和运算符,我使用一对(或多个)SUBSTITUTE公式来呈现Excel可能能够消化的string:
=ABC+DEF/TRE_1
我引用所有variables到命名范围。 例如:
ABC是单元格B2,值为5.4
DEF是单元格B3,值为3.2
TRE_1是单元格B4,值为1
但是,我不能得到结果string评估与间接或评估。 它只是给了我一个#NAME或#REF错误,因为它似乎并不认可这个variables作为一个命名范围(也就是一个值)。
有任何想法吗?
我不想在VBA中实现这个。 我知道使用.RefersTo方法是可能的。
尝试使用这个语法:
=INDIRECT("ABC")+INDIRECT("DEF")/INDIRECT("TRE_1")
注意报价。 这似乎是如何INDIRECT
工作: =INDIRECT("ABC+DEF")
返回#REF!
另请参阅此示例: https : //www.dropbox.com/s/jxj7cgjmnx8iv0t/INDIRECTwithNamedRegions.xlsx
INDIRECT dows不会评估公式,只有引用:您需要使用Evaluate,但只能通过XLM或COM接口使用。
您可以在已定义的名称公式中embeddedEvaluate,但通常这种方法是不切实际的。
VBA解决scheme(在这里或这里看到的)是在当前工作簿中的模块内部设置UDF(用户定义的function),例如:
Function Eval(ByVal S As String) As String Eval = Evaluate(S) End Function
将variables设置为命名范围,在单元格中input:
=Eval("ABC+DEF/TRE_1")
它会正确地popup结果。
现在..我不想使用VBA …