UDF 评估表示复杂公式的文本字符串

问题描述 投票:0回答:1

通过在互联网上的调查,我已经确定如何针对一个简单的问题做到这一点。 我正在使用此处显示的 VBA 函数。

Option Explicit
Function fxTextToFormulaUDF(text As String)
    Application.Volatile
    fxTextToFormulaUDF = Application.Caller.Parent.Evaluate(text)
End Function

我希望创建一个公式,该公式使用单元格中的文本作为其一部分。 对于一个非常简单的问题,这很好用。看这个例子:

   A         D            C          D       E  

1 件商品 Order_num 2 abc124 200 3'XLOOKUP(A2,ID, 4 5 ID 描述 数量 成本 Order_num 6 abc123 A 1 10 100 7 abc124 B 2 20 200 8 abc125 C 3 30 300

单元格 D2 中的公式为 =fxTextToFormulaUDF(right(D3,len(D3)-1),D1)。 这样就可以更改单元格 D1 中的值,并且适当的值将显示在单元格 D2 中。

但是,对于更复杂的 XLOOKUP 公式,它不起作用。 请参阅随附的图片。 这里,XLOOKUP 从磁盘上的文件中检索值。 我收到#REF!错误。 有什么想法吗? 预先感谢!

见上文。 也许从磁盘检索是问题所在。

text formula
1个回答
0
投票

您似乎已经成功实现了一个 VBA 函数 (fxTextToFormulaUDF) 来动态计算基于文本字符串的公式。这种方法适用于更简单的场景,如您的示例所示,更改单元格 D1 中的值会影响 D2 中的结果。

但是,当尝试将此方法与更复杂的 XLOOKUP 公式结合使用时,特别是从磁盘上的文件中检索值的公式时,您会遇到#REF!错误。

鉴于该错误,问题可能在于 XLOOKUP 公式如何与外部数据源(例如磁盘上的文件)交互。确保在公式中正确配置文件路径和任何必要的权限至关重要。

仔细检查文件路径是否准确,并且可以从公式中指定的位置访问该文件。此外,验证是否正确设置了所有必需的文件权限,以允许公式从磁盘检索数据。

如果文件路径和权限正确,请考虑对 XLOOKUP 公式本身进行故障排除。将公式分解为更小的部分,并分别评估每个部分,以确定问题可能发生的位置。这种方法可以帮助隔离问题并确定适当的解决方案。

如果问题仍然存在,提供有关 XLOOKUP 公式及其尝试从中检索数据的文件的更具体详细信息可能有助于进一步诊断问题。请随时分享更多信息,我们可以共同解决问题。

© www.soinside.com 2019 - 2024. All rights reserved.