Выберите 10 лучших максимальных значений - PullRequest
0 голосов
/ 06 января 2012

Мне нужна помощь в написании цикла, который находит 10 самых высоких значений в столбце "F".Для каждого из 10 самых высоких выбранных значений я хочу вставить это значение (а также связанные значения в столбцах C, D и E) в другую электронную таблицу.

Спасибо

1 Ответ

4 голосов
/ 06 января 2012

Функция Aggregate предназначена для игнорирования значений ошибок (среди прочего). Вот SUB Aggregate и Large, чтобы получить предельное значение для запуска вашего кода копирования

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...