首页 > 解决方案 > Excel VBA 评估不起作用,出现#VALUE 错误

问题描述

当我使用 ActiveCell.Formula2R1C1 函数时,我有一个 VBA 公式可以工作,我用它来测试我可以得到我想要的结果。这可以正常工作,给我一个逗号分隔的列表。

ActiveCell.Formula2R1C1 =      "=SUBSTITUTE(ARRAYTOTEXT(FILTER(VendSelect1,VendSelect3=LEFT(R[-7]C[-3],6))),LEFT(R[-7]C[-3],6) & "","","""")"

VendSelect1 和 VendSelect3 是来自另一个选项卡中的表的命名范围

我想将此公式的结果用作要在数据验证列表中使用的字符串。走这条路的原因是列表将根据在另一个单元格中输入的值是动态的,因此列表会有所不同。我有用于创建数据验证的代码,我只需要将上述等式的结果存储为该代码的变量。

我尝试使用 Evaluate 函数来存储结果,但是当我尝试将该值放入单元格中以测试它是否正常工作时,单元格中出现 #VALUE 错误。这只是比 Evaluate 可以处理的更复杂的公式吗?还是我做错了什么?我愿意接受其他建议来完成同样的事情,但我不是 VBA 专家,到目前为止,这是我发现的最好的事情。这是我在单元格 D14 中给我#VALUE 错误的代码。

Sub Test()
Dim FormTest As Variant
FormTest = Evaluate("=FILTER(VendSelect1,VendSelect3=LEFT(R[-7]C[-3],6))")
Range("D14") = FormTest
End Sub

我一直试图让它工作大约 2 天,这似乎是获得我想做的最后一个障碍。

先感谢您。

标签: vbaevaluate

解决方案


推荐阅读