Страница: 1 |
Страница: 1 |
Вопрос: Аналог break/continue
Добавлено: 28.08.08 12:08
Автор вопроса: Yoshie
Уважаемые специалисты, не могу найти, существует ли в vba что-то, что поможет рещить конструкцию типа
For i = 1 To 10
For j = 1 To 20
If Какое-то условие от (i,j)=True Then
MsgBox j
вот здесь надо перейти на следующее i, т.е. при данном i поиск по j уже не нужен
End If
Next j
Next i
Ответы
Всего ответов: 14
Номер ответа: 1
Автор ответа:
андрей
Вопросов: 6
Ответов: 9
Профиль | | #1
Добавлено: 28.08.08 12:29
Exit For
вроде должно помочь в данной ситуации
Номер ответа: 2
Автор ответа:
Yoshie
Вопросов: 4
Ответов: 11
Профиль | | #2
Добавлено: 28.08.08 12:35
Да, помогло! Спасибо!
Не хочу делать отдельную тему - как сохранить лист как *.txt с разделителями табуляция?
Номер ответа: 3
Автор ответа:
Jasmin
Вопросов: 23
Ответов: 417
Профиль | | #3
Добавлено: 28.08.08 12:35
Точно поможет.
Номер ответа: 4
Автор ответа:
Jasmin
Вопросов: 23
Ответов: 417
Профиль | | #4
Добавлено: 28.08.08 12:37
Что-то вроде:
"C:\Book1.txt", FileFormat:= _
xlText, CreateBackup:=False
Номер ответа: 5
Автор ответа:
ADSemenov.ru
Вопросов: 5
Ответов: 276
Web-сайт:
Профиль | | #5
Добавлено: 28.08.08 13:41
А если надо выйти из "многомерного" цикла куда-то в середину, то можно использовать фиктивную конструкцию Do ... if (тырыпыры) Then Exit Do ... Loop False
Номер ответа: 6
Автор ответа:
Yoshie
Вопросов: 4
Ответов: 11
Профиль | | #6
Добавлено: 28.08.08 13:44
Что-то это как-то запутано. По-моему, Exit for в теле прерываемого цикла более понятен Для не супермега )
Номер ответа: 7
Автор ответа:
ADSemenov.ru
Вопросов: 5
Ответов: 276
Web-сайт:
Профиль | | #7
Добавлено: 28.08.08 14:22
Это Вы зря. Если необходимо в тройном цикле выйти "срочно" из третьего уровня в первый, то иного, более простого, пути нет, как только через эту фиктивную конструкцию.
В каких-то старых языках была возможность идентифицировать вложенность. Например, в Next можно указать переменную цикла. Если бы это можно было сделать и в Exit For, то тогда бы эта проблема имела простое решение — можно было бы из любого места вложенного цикла выйти из любого уровня внешних циклов по указанию переменной этого цикла.
Последний раз эту конструкцию исползовал в PHP.
Номер ответа: 8
Автор ответа:
Yoshie
Вопросов: 4
Ответов: 11
Профиль | | #8
Добавлено: 28.08.08 14:26
Да, соглашусь. Тоже разочарована отсутствием возможности Exit for Счётчик
Jasmin
метод сохранения почему-то у меня не работает
Он сохраняет, но текст идёт подряд без разделителей. Пошла детально разковырёвывать свойства save as - а
Номер ответа: 9
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #9
Добавлено: 28.08.08 16:14
ADSemenov.ru
Метка&Goto - самый простой способ, многие сильно стесняются его применять, т.к. он нарушает теоретические принципы структурного программирования. Тем не менее крайне редко бывает такая необходимость выходить на k уровней циклов из n, так можно применить несколько раз Exit For / Exit Do
Номер ответа: 10
Автор ответа:
Yoshie
Вопросов: 4
Ответов: 11
Профиль | | #10
Добавлено: 28.08.08 16:23
Не стесняются, просто изначально втулили в голову, что это в программировании жлобство))
Номер ответа: 11
Автор ответа:
Jasmin
Вопросов: 23
Ответов: 417
Профиль | | #11
Добавлено: 28.08.08 18:42
Ну я тоже его не использую. Как-то не страдаю особо от этого. Не нравиться мне скакать туда-сюда по тексту. Без перехода кажется логичней.
To Yoshie: Извини, писала на скорую руку. Хотелось указать направление копания хотя бы. Что бы человек пока покапался, попробовал. Что бы время не терял.
Номер ответа: 12
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #12
Добавлено: 28.08.08 20:40
GOTO увы. Проще не сделать.
Номер ответа: 13
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #13
Добавлено: 28.08.08 22:54
Можно попробовать return
Номер ответа: 14
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #14
Добавлено: 29.08.08 15:41
Как ни извращайтесь, в конечном счете процессоры для изменения порядка выполнения кода понимают только разновидности jXX, retn и loop.