如标题所示,单元格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<仅
。
最佳答案
您可以首先获取 Range
对象的 FormulaArray
属性,然后对其进行Evaluate
以返回完整数组:
v = Evaluate(Range("A1").FormulaArray)
您可以按预期访问元素(和/或像正常声明 Array
一样操作它们):
v(1) --> 1
v(2) --> 2
v(3) --> 3
关于arrays - 如果Excel中的单元格包含数组公式(例如 `={1,2,3}` ),我可以使用VBA提取数组的元素吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30337385/