我有一个数组,例如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
答案 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功能,因为我想凭经验证明我不是简单地写下数组的前三个元素(以升序方式排序)。