gpt4 book ai didi

arrays - VBA - 获取数组中第n个最大值的索引

转载 作者:行者123 更新时间:2023-12-02 04:49:06 28 4
gpt4 key购买 nike

我想找到数组中第 n 个最大值的索引。我可以执行以下操作,但当 2 个值相等时会遇到麻烦。

fltArr(0)=31
fltArr(1)=15
fltArr(2)=31
fltArr(3)=52

For i = 0 To UBound(fltArr)
If fltArr(i) = Application.WorksheetFunction.Large(fltArr, n) Then
result = i
End If
Next

n=1 ---> 3
n=2 ---> 2 (but I want this to be 0)
n=3 ---> 2
n=4 ---> 1

最佳答案

使用第二个数组快速获取所需内容,而无需循环遍历 n 的每个值的每个元素

Sub test()

Dim fltArr(0 To 3)
Dim X
Dim n As Long
Dim lngPos As Long

fltArr(0) = 31
fltArr(1) = 15
fltArr(2) = 31
fltArr(3) = 52

X = fltArr

For n = 1 To 4
lngPos = Application.WorksheetFunction.Match(Application.Large(X, n), X, 0) - 1
Debug.Print lngPos
X(lngPos) = Application.Max(X)
Next

End Sub

关于arrays - VBA - 获取数组中第n个最大值的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28468718/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com