Function MyMin(Rng As Range, k%)'Rng是表格範圍,k代表取第幾個數值
Dim Ar()'宣告動態陣列
i = 2'從表格第二列為初始列
Do Until s >= Rng.Rows.Count'進行迴圈直到陣列大小大於等於表格的列數
Set x = Rng.Rows(i)'設表格的i列為變數x的範圍
n = Application.Min(x)'取最小值
j = Application.Index(Rng.Rows(1), , Application.Match(n, x, 0))'取最小值對應到表格第一列的值
For x = 1 To j '做j次的迴圈
ReDim Preserve Ar(s) '重新布置陣列
Ar(s) = n '將最小值賦予陣列
s = s + 1 '預備擴展陣列
Next
i = i + j '列數加上前列最小值對應次數為下一回圈的列
Loop '跳脫迴圈
MyMin = Ar(k - 1) '將陣列的第k-1個元素作為答案(因為陣列的索引值從零開始,所以必須減1)
End Function作者: jcman 時間: 2011-10-25 10:18