选择前10个最大值

时间:2012-01-06 17:39:12

标签: excel-vba vba excel

我需要帮助编写一个循环,找到列“F”中的10个最高值。对于所选的10个最高值中的每一个,我想在另一个电子表格中粘贴该值(以及C,D和E列中的关联值)。

由于

1 个答案:

答案 0 :(得分:4)

Aggregate函数旨在忽略错误值(以及其他内容)。这是一个SUB AggregateLarge来获取一个触发您的复制代码的威胁(

Sub GetTop10(r As Range)
    Dim v As Variant
    Dim t As Variant
    Dim i As Long

    ' 14 = function LARGE
    '  6 = ignore error values
    ' 10 = get 10'th largest value
    t = Application.WorksheetFunction.Aggregate(14, 6, r, 10)
    v = r
    For i = 1 To UBound(v, 1)
        If Not IsError(v(i, 1)) Then
            If v(i, 1) >= t Then
                ' copy r.cells(i,-2).resize(1,4) to your other sheet
            End If
        End If
    Next
End Sub