如何在VBA中将索引函数用于动态范围

时间:2016-04-13 07:41:43

标签: excel vba excel-vba

我得到了this->Show(),我试图在不使用循环的情况下计算该数组子集的平均值。

在excel中,我可以使用例如:

n x m data array

但不确定如何将其转换为VBA。以下将给我一个错误:

x = AVERAGE(INDEX(A1:A100,20,1):INDEX(A1:A100,50,3))

我假设我不能在函数之间使用x = Worksheetfunction.Average(Worksheetfunction.Index(ArrayX,20,1):Worksheetfunction.Index(ArrayX,50,3)) 。我怎么能绕过它呢?感谢帮助!

1 个答案:

答案 0 :(得分:0)

您可以使用Application.Index通过传递行数和列数数组来提取数组的子集:

x = WorksheetFunction.Average(Application.Index(ArrayX, [row(20:32)], Array(1, 2, 3)))

请注意,WorksheetFunction.Index不适用于此,您必须使用Application.Index。此外,您的阵列的限制为65536'行'。