Нахождение n наибольших значений столбцов в строке VBA

#vba

Вопрос:

Если вы хотите найти наибольшее значение в excel, вы можете использовать функцию «БОЛЬШОЙ». Если вы запишете макрос с помощью функции large, вы получите следующее:

 Sub test()
Range("L5").Select
ActiveCell.FormulaR1C1 = "=LARGE(RC[-1]:R[4]C[-1],1)"
Range("L5").Select
end
 

Однако я хочу найти n самых больших значений, а не только самое большое значение. Я не хочу жестко кодировать все, если n велико, поэтому я попытался сделать следующее

 sub test2()
For i = 1 To 6
Range("Li").Select
ActiveCell.FormulaR1C1 = "=LARGE(RC[-1]:R[4]C[-1], i)"
Next i
end
 

Неудивительно, что

 Range("Li").Select 
 

это ошибка. Что меня больше интересует, так это

"=LARGE(RC[-1]:R[4]C[-1], i)".

Всякий раз, когда я использую «i» вместо целого числа, это приводит к ошибке, так как на листе Excel он просто возвращает #NAME.

Поэтому я ищу способ перебрать «i» в БОЛЬШОЙ функции без получения символа #NAME в соответствующем рабочем листе, но вместо этого получаю 1-е по величине число, 2-е по величине число и так далее.

Ответ №1:

Уберите i из текста квалифицирующие цитаты в обоих случаях.

Попробуйте это

 sub test2()
For i = 1 To 6
Range("L" amp; i).Select
ActiveCell.FormulaR1C1 = ("=LARGE(RC[-1]:R[4]C[-1]," amp; i amp; ")")
Next i
end
 

Ответ №2:

«Я» не должно быть в кавычках.

 Sub test2()
Dim i As Long
    For i = 1 To 6
        Range("L" amp; i).FormulaR1C1 = "=LARGE(RC[-1]:R[4]C[-1], " amp; i amp; ")"
    Next i
End Sub