Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

for ... next

6.5K
16 февраля 2005 года
arnabius
15 / / 07.10.2004
Здравствуйте!
Подскажите, пожалуйста, такую вещь (заранее извините, если вопрос банальный, но я что-то не могу найти ответа):
есть цикл for ... next, и насильно выйти из него можно командой exit. А как насильно перейти к началу цикла, т.е. где-то в середине цикла начать его заново, игнорируя оставшиеся команды?
258
16 февраля 2005 года
SergeySV
1.5K / / 19.03.2003
Нет такой команды, обычно в коде используют If Then и этого вполне хватает, чтобы не выполнять ненужные действия... но если уже совсем не хочется менять структуру кода, то можно просто поставить в начале цикла свою метку и использовать команду - Goto ТвояМетка
275
16 февраля 2005 года
pashulka
985 / / 19.09.2004
Можно решить Вашу задачу следующим образом, но необходимо "ограничить" количество повторений, в противном случае мы рискуем получить perpetuum mobile

For i = 1 To 10

If i = 5 Then i = 1

Next
8.0K
16 февраля 2005 года
Lovehero
19 / / 11.02.2005
275
16 февраля 2005 года
pashulka
985 / / 19.09.2004
To lovehero

Неужели Вы считаете, что автор вопроса оставит изначальное условие повторение цикла ...
И второе, Вы действительно считаете, что то символическое изменение моего кода способно остановить повторение цикла ...
8.0K
16 февраля 2005 года
Lovehero
19 / / 11.02.2005
8.0K
16 февраля 2005 года
Lovehero
19 / / 11.02.2005
Да, и второе, если условие сформулированно грамотно - то оно действительно остановит повторения. Причем предложенные мной изменения ВАШЕГО кода интуитивно гораздо понятнее.
275
16 февраля 2005 года
pashulka
985 / / 19.09.2004
Ну во первых, неизвестно является или нет автор вопроса начинающим программистом.
Если судить о человеке, основываясь на том, что он задаёт вопрос на форуме, то здесь Вы с ним находитесь в равных условиях. (Но даже если и является, то в принципе это сути дела не меняет)

Второе, если уж разбирать по кирпичику, то Вы не давали ни другого варианта ответа, ни дополнения, ибо Ваш код является абсолютным клоном.

If i = 5 Then i = 1

что есть i = 5, как не <условие повторение цикла>, в таком случае исходный код выглядит как

If <Условие повторения цикла> Then i = 1

А теперь сравните два кода и найдите хотя бы одно отличие.

Третье, Вы мне напомнили одного человека, который совершенно серьёзно говорил, если всё делать правильно, то всё будет работать. В том то и дело, что если всё делать правильно, то и вопросы на форумах задавать будет некому.

Четвёртое, Я утверждаю, что остановить повторение цикла одним лишь условием не всегда возможно и готов подтвердить свои слова примером.

И наконец самое главное, не очень понятно, что именно даёт Вам основание сомневаться в умственных способностях автора вопроса … я например уверен, что он в состоянии понять, что i = 5, всего лишь пример …
8.0K
16 февраля 2005 года
Lovehero
19 / / 11.02.2005
8.0K
16 февраля 2005 года
Lovehero
19 / / 11.02.2005
А вообще, вместо того чтобы вести этот никому не нужный спор, лучше подскажите как в Outlooke получить адресс отправителя письма. именно адрес, а не имя отправителя. Т.е MailItem.SenderName в данном случае не применим.
275
16 февраля 2005 года
pashulka
985 / / 19.09.2004
1) Принудительный выход из цикла действительно распространённая вещь, но автор топика знает как его осуществить.
Возврат в начало цикла отнюдь не есть предмет первой необходимости (и даже второй) А если заниматься VBA только для себя, то этот вопрос может всплыть ой как нескоро.

2) Что касается умственных способностях других людей, которые Вы постоянно ставите под сомнение, то цитаты из Ваших ответов будут более чем красноречивы :

По опыту репетиторства у студентов младших курсов и учащихся старших классов могу сказать, что с вероятностью близкой к еденице, автор использовал бы ваш код примерно так:
If <его условие> then
<ваш код>
Или что-то в этом роде. Получилась бы очень сложная конструкция


стоит учитывать тот факт, что данный топик будет читать не только автор. Наверняка найдется не один человек, которого интересует данный вопрос. И не всем все будет понятно.

Я опять повторюсь, но я не сомневаюсь, что и другие люди читающие этот топик смогут понять, что любой пример есть только пример … и важен только принцип.

P.S.
Принципиально неприемлю когда люди опубликовывают клоны уже имеющегося ответа и не важно по каким причинам они это делают.
Тем более это выглядит довольно странно, когда люди утверждают что первоначальный ответ не вполне корректный и опубликовывают его абсолютную копию, даже без изменений.
8.0K
16 февраля 2005 года
Lovehero
19 / / 11.02.2005
Слушай, если ты весь из себя такой вумный и жутко принципиальный, то помоги мне разобраться с адресом отправителя письма. А то, блин, фигней страдать может каждый и разводить пустое балабольство на никому не интересные темы. Если у тебя бальное самолюбие - то это к психиатру, а не сюда. Иди лечись в другом месте.
275
17 февраля 2005 года
pashulka
985 / / 19.09.2004
1) Мои личные качества не имеют никакого отношения к Вашему вопросу.
2) Что касается чистого флуда, то его разводили именно Вы, не давая прямых ответов и кодов, а ограничиваясь выражениями, типа, надо всё делать правильно и т.п. Я же со своей стороны предлагал перевести разговор в более материальную плоскость, а именно подкреплять свои слова кодами, но ...
3) Я думаю любому человеку, который прочитает Ваше последнее сообщение станет ясно, что нервишки пошаливают у Вас, так что с направлением к врачу Вы явно ошиблись адресатом.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог