如何在VBA中找到最小的数组,而不是在excel范围内

时间:2015-01-21 01:19:51

标签: excel excel-vba vba

这里的基本思路是第4卷d6,降到最低点。

For lngPosition = LBound(strAttributes) To UBound(strAttributes)

        i = 0
        For shortPosition = LBound(intRoll) To UBound(intRoll)
           intRoll(shortPosition) = Int((6 - 1 + 1) * Rnd + 1)
           i = intRoll(shortPosition) + i
        Next shortPosition

        i = {i - smallest intRoll()}

        strAttributes(lngPosition) = i

    Next lngPosition

通过在定义范围后添加.Small,我发现了很多关于如何在excel范围内找到最低值的信息,但我认为这不起作用。关于如何实现这一目标,我可能已经离开了数英里,但我很新鲜,我真的不知道。

由于

2 个答案:

答案 0 :(得分:3)

假设您的数组是一维数组,您仍然可以使用工作表函数类,如:

Dim myArray
myArray = Array(5, 3, 103, 99, -14, 12)

Debug.Print Application.WorksheetFunction.Small(myArray, 1)

如果您的数组是多维的,那么您将需要使用强力迭代。

答案 1 :(得分:1)

这是一个如何实现它的例子:

Sub test()
    Dim a(10), i&
    For i = 0 To 10
       a(i) = i
    Next
    MsgBox "Min: " & WorksheetFunction.Min(a) & Chr(10) & _
            "Avg: " & WorksheetFunction.Average(a) & Chr(10) & _
            "Max: " & WorksheetFunction.Max(a)
End Sub