#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