Подскажите, пжл, как лучше написать макрос, кроме перебора ничего не получается придумать. Задача такая: Есть набор чисел: 5, 10, 15, 20, 25, 30, 35. И есть число, которое задается, например 12. Нужно из диапозона выбрать число, которое будет наибольшим после заданного. В данном случае ответ будет 10. Если заданное число будет 19, то ответ 15. Спасибо.
Добрый день,
Подскажите, пжл, как лучше написать макрос, кроме перебора ничего не получается придумать. Задача такая: Есть набор чисел: 5, 10, 15, 20, 25, 30, 35. И есть число, которое задается, например 12. Нужно из диапозона выбрать число, которое будет наибольшим после заданного. В данном случае ответ будет 10. Если заданное число будет 19, то ответ 15. Спасибо.Bregra
Спасибо. Формула работает отлично, но можно ли все это сделать в самом макросе? Например, можно ли записать массив Array(5, 10, 15, 20, 25, 30, 35) и применить к ней формулу ВПР, без испоьзования листов экселя?
Спасибо. Формула работает отлично, но можно ли все это сделать в самом макросе? Например, можно ли записать массив Array(5, 10, 15, 20, 25, 30, 35) и применить к ней формулу ВПР, без испоьзования листов экселя?Bregra
Sub tt() Dim ar(6, 0) n_ = 5 For i = 0 To UBound(ar) ar(i, 0) = n_ * (i + 1) Next i x_ = CInt(InputBox("Введи число от " & n_ * (LBound(ar) + 1) & " до " & n_ * (UBound(ar) + 1))) MsgBox "Ответ: " & WorksheetFunction.VLookup(x_, ar, 1, True) End Sub
[/vba]
Так хотите? [vba]
Код
Sub tt() Dim ar(6, 0) n_ = 5 For i = 0 To UBound(ar) ar(i, 0) = n_ * (i + 1) Next i x_ = CInt(InputBox("Введи число от " & n_ * (LBound(ar) + 1) & " до " & n_ * (UBound(ar) + 1))) MsgBox "Ответ: " & WorksheetFunction.VLookup(x_, ar, 1, True) End Sub