Никак не могу разобраться с массивами и циклами. Есть одна задача , помогите пожалуйста.
Дакнные во вложении. Описание: Вообщем виде необходимо реализовать, чтобы взяв значение B1 проверить какое ближайшее значение из массива В2:В9 будет больше или равно значению В1 и вывести его в отдельную ячейку напротив соотв строки. После того как получен результат - перейти к дальнейшему поиску только по В10 из массива В11:В19 и т.д. (т.е. цикл).
Добрый день.
Никак не могу разобраться с массивами и циклами. Есть одна задача , помогите пожалуйста.
Дакнные во вложении. Описание: Вообщем виде необходимо реализовать, чтобы взяв значение B1 проверить какое ближайшее значение из массива В2:В9 будет больше или равно значению В1 и вывести его в отдельную ячейку напротив соотв строки. После того как получен результат - перейти к дальнейшему поиску только по В10 из массива В11:В19 и т.д. (т.е. цикл).Роман83
Не ошибся, писал специально до 9-ти , т.к. 10-ую строку не использую. Но это не принципиально можно и до 10-ти , главное подскажите общее решение.
Не ошибся, писал специально до 9-ти , т.к. 10-ую строку не использую. Но это не принципиально можно и до 10-ти , главное подскажите общее решение.Роман83
Sub comparer() Dim x Dim i& Dim start& Dim bool As Boolean: bool = False x = [a1:c20] start = 1 retr: If bool = True Then start = start + 10: bool = False If start < UBound(x) Then For i = start To start + 9 If x(i, 2) >= x(start, 2) And i <> start Then x(i, 3) = x(i, 2) bool = True GoTo retr End If Next End If [a1:c20] = x End Sub
[/vba] думаю, здесь есть лишие строки
Если я правильно понял, то можно так: [vba]
Код
Sub comparer() Dim x Dim i& Dim start& Dim bool As Boolean: bool = False x = [a1:c20] start = 1 retr: If bool = True Then start = start + 10: bool = False If start < UBound(x) Then For i = start To start + 9 If x(i, 2) >= x(start, 2) And i <> start Then x(i, 3) = x(i, 2) bool = True GoTo retr End If Next End If [a1:c20] = x End Sub