如何使用excel VBA确定变量中的三个最小值?

时间:2018-02-24 02:19:02

标签: excel excel-vba vba

我有一个数组,例如M = [1,2,3,4,5,6,7,8,9,10],我想得到前三个最小的:[1,2,3 ]。如何在excel VBA中执行此操作?

我希望在我的实际代码中获得每行i的3个最小值,即数组Min_NDate(i,j),如下所示:

For i = 1 To Total_Rows_Help
    For j = 1 To Total_Rows_Help
        Min_NDate(i, j) = Worksheets("Help Worksheet").Cells(i, 2) - Worksheets("Help Worksheet").Cells(j, 2)
    Next j
Next i

1 个答案:

答案 0 :(得分:2)

只需使用应用程序的SMALL功能。

dim m as variant, k as long
m = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
for k=1 to 3
    debug.print application.small(m, k)
    debug.print application.large(m, k)
next k

我已经包含了一个工作表的LARGE功能,因为我想凭经验证明我不是简单地写下数组的前三个元素(以升序方式排序)。