Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.05.2009, 13:53   #1
Maka111
 
Регистрация: 03.05.2009
Сообщений: 6
По умолчанию условие

перемещаемся по ячейкам, и находим 2 смежные у которых не нулевые значения

вот такой код
Код:
z = 0
While (Range("W5").Offset(z, -1).Value <> 0) And (Range("W5").Offset(z + 1, -1).Value <> 0)
   z = z + 1
Wend
в дебагере значения ячеек, которые удовлетворяют условию выхода из while wend 1 и 0, а должно при "не 0" и "не 0". что не учтено?
Maka111 вне форума Ответить с цитированием
Старый 14.05.2009, 14:16   #2
mchip
Форумчанин
 
Регистрация: 24.06.2008
Сообщений: 516
По умолчанию

Попробуй так:
Код:
Z = 0
Do
Z = Z + 1
If (Range("d5").Offset(Z, -1).Value <> 0) And (Range("d5").Offset(Z + 1, -1).Value <> 0) Then Check = True
Loop Until Check = True
Можно сделать все! Было бы время, да деньги...
mchip вне форума Ответить с цитированием
Старый 14.05.2009, 15:32   #3
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Ну или даже чуть короче:
Код:
Sub test()
    Do
        z = z + 1
    Loop Until Range("w5").Offset(z, -1) And Range("w5").Offset(z + 1, -1) And z < 1000
    MsgBox z
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 14.05.2009, 15:36   #4
mchip
Форумчанин
 
Регистрация: 24.06.2008
Сообщений: 516
По умолчанию

Цитата:
Ну или даже чуть короче:
Как всегда в точку!
Можно сделать все! Было бы время, да деньги...
mchip вне форума Ответить с цитированием
Старый 17.05.2009, 10:24   #5
Maka111
 
Регистрация: 03.05.2009
Сообщений: 6
По умолчанию

Благодарю за предложенные варианты. Все работает.
Но все же не могли бы Вы подсказать где у меня ошибка. Не хочется в будущем наступить на эти же грабли
Maka111 вне форума Ответить с цитированием
Старый 17.05.2009, 18:25   #6
mchip
Форумчанин
 
Регистрация: 24.06.2008
Сообщений: 516
По умолчанию

Посмотри разницу между операторами While и Do...
Можно сделать все! Было бы время, да деньги...
mchip вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
условие Neymexa Общие вопросы .NET 3 19.04.2009 15:39
условие Neymexa Общие вопросы по Java, Java SE, Kotlin 2 07.02.2009 11:37
Условие(If then) Andreyka Общие вопросы Delphi 3 12.01.2009 15:30
Условие в формуле Shavminator Microsoft Office Excel 3 13.02.2008 19:18
Условие [Smarik] Паскаль, Turbo Pascal, PascalABC.NET 3 03.02.2008 08:08