我有一个关于我的函数的问题,以返回双数组中的最大数字。 这是我当前的代码看起来像
Function return_largest()
last_row = Range("A1").End(xlDown).Row
Dim array_1()
ReDim array_1(last_row - 2, 5)
For i = 0 To last_row - 2
array_1(i, 0) = Range("A" & i + 2)
array_1(i, 1) = Range("B" & i + 2)
array_1(i, 2) = Range("C" & i + 2)
array_1(i, 3) = Range("D" & i + 2)
array_1(i, 4) = Range("E" & i + 2)
Next
MsgBox Application.WorksheetFunction.Max(array_1)
End Function
此功能适用于5x5阵列。如果我希望将其作为可用于维数(i,k)的函数,我应该如何更改此代码?
换句话说,我怎样才能编写一个函数来找到一个数组的最大元素,该元素可以在子过程中为大小(x,y)的数组调用(子过程中数组的维度是多少),以及该子程序的语法是什么?
答案 0 :(得分:1)
如果您从工作表中调用此内容并且未通过该范围,Excel将看不到依赖项,并且在范围更改时不会重新计算。
Function return_largest(r As Range) As Double
return_largest = WorksheetFunction.Max(r.Value2)
End Function
然后你可以使用动态或静态范围来调用它:
= return_largest(A1:K5)