Excel vba和arrayformula

我试图从一个数组公式到VBA中的值。 简单的例子:我有一个单元格(比方说D1),其中有一个数组公式
= A1:A10 * B1:B10当我在电子表格上突出显示,然后按F9我会得到一个10个数字的数组,例如= {5; 12; 15; 24; 25; 24; 42; 40; 54; 70}

我想能够将这些值存储在VBA数组中:a(0)= 5,a(1)= 12,a(3)= 15等; 你明白了。

试图寻找这个答案,但即使在MSFT上也找不到任何相关的东西。 关于如何从VBA转到工作表范围(我知道这一点)的很多答案,但不是这样。 看着试图通过一个ParamArray(元素的数量不会被固定),通过直接分配给一个未经调整的数组,并通过EVALUATE(范围),但我不能得到任何这些工作。 我觉得我必须失去一些明显的东西。

不知道你已经尝试过。 但Evaluate应该工作。

如果我有以下情况:

在这里输入图像描述

代码:

 Sub getArrayFormulaResult() sFormula = Range("D1").FormulaArray aResult = Evaluate(sFormula) MsgBox Join(Application.Transpose(aResult), ",") End Sub 

将导致:

在这里输入图像描述

尝试这个

 Dim var as variant var=Worksheets("MySheet").Evaluate(Worksheets("MySheet").Range("D1").formula) 

注意你应该使用Worksheet.Evaluate来确保这个工作当Mysheet不是活动工作表。 结果将始终是一个2_D数组(对于您的示例数组公式为一列)