如果Excel中的单元格包含数组公式(如`= {1,2,3}`),我可以使用VBA

时间:2015-05-19 22:41:25

标签: arrays excel excel-vba vba

与标题一样,单元格A1包含公式={1,2,3},它是单元格的有效输入,我可以使用VBA获取数组的元素。

请注意,Range("A1").Value会返回值1,但Range("A1").Formula会返回字符串={1,2,3}。因此,我能想到的唯一方法是解析公式并将值与,分开(如CSV行)。

在这种情况下,还有其他方法可以在vba中返回值数组。我甚至尝试将其作为数组读入v=Range("A1:A2").Value2的变体,但v(1)仅包含1

1 个答案:

答案 0 :(得分:6)

您可以先获取FormulaArray对象的Range属性,然后Evaluate它以返回完整数组:

v = Evaluate(Range("A1").FormulaArray)

您可以按预期访问元素(和/或将它们操作为正常声明Array):

v(1) --> 1
v(2) --> 2
v(3) --> 3