如何使用Evaluate方法

时间:2017-08-02 11:00:01

标签: arrays excel vba excel-vba excel-formula

在VBA中,Evaluate()[]方法都可以用于返回数组:

Dim i As Variant
i = Evaluate("{1,2;3,4}")
i = [{1,2;3,4}]

这两行将i设置为包含数字1-4的2D数组。增加的功能是Evaluate(...)(1,2)返回数组的R1C2索引元素(即2 - [...](1,2)同时出错)

我想知道是否有任何语法以相同的方式评估数组返回工作表函数,例如。

i = Evaluate("LEN(A1:A5)>3") 'or similar like [{LEN(A1:A5)>3}]

如果我{False,False,False,True,True}&中有超过3个字符的文字,则应该返回A4之类的1D数组。 A5,但事实并非如此。

如果没有,是否有另一种评估数组公式以返回完整数组的单线方式?我正在寻找任何方法给出最小的字符数。

1 个答案:

答案 0 :(得分:3)

要返回数组,您需要使用支持数组的函数。

通常与VBA一起用于评估数组表达式的函数是INDEX,因为它不会改变值:

Dim data()
data = Evaluate("INDEX(LEN(A1:A5)>3,)")