【问题标题】:If a cell in Excel contains an array formula (like `={1,2,3}`) can I extract the elements of the array with VBA如果 Excel 中的单元格包含数组公式(如 `={1,2,3}`),我可以使用 VBA 提取数组的元素吗
【发布时间】:2015-05-20 07:08:00
【问题描述】:

正如标题所说,一个单元格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

【问题讨论】:

    标签: arrays excel vba


    【解决方案1】:

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

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

    您可以按照您的预期访问元素(和/或按照通常声明 Array 的方式操作它们):

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

    【讨论】:

    • 正是我需要的。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-08
    • 2017-04-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多