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

Ваш аккаунт

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

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

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

Метка GoTo Почему?

3.7K
14 октября 2005 года
SAID
92 / / 06.10.2005
В принципе проблема такая!
Надо было написать прогу на VBA EXCEL по сути тема программы в данном раздели не важна. В самом начале попробовал написать программу с меткаками GoTo, но после вставки трех гоутушек, и после запуска программы xcel зависает. Вопрос в принципе такой: Почему происходит зависание, и как делать чтобы не зависал( с метками GoTo).
Зарание спасибо.
1.8K
14 октября 2005 года
binaryshadow
36 / / 02.12.2002
Цитата:
Originally posted by SAID
В принципе проблема такая!
Надо было написать прогу на VBA EXCEL по сути тема программы в данном раздели не важна. В самом начале попробовал написать программу с меткаками GoTo, но после вставки трех гоутушек, и после запуска программы xcel зависает. Вопрос в принципе такой: Почему происходит зависание, и как делать чтобы не зависал( с метками GoTo).
Зарание спасибо.



Во первых забудь что такое GoTo. Без этой дряни вполне можно обойтись, а если использовать то в случае без выходного положения(что смутно мне представляется).

Теперь по делу, скорее всего у тебя получается бесконечный цикл или просто очень долгий, так что рекомендую попробывать вставить где-нибудь DoEvents.

Эта функция даёт возможность работать приложению и циклу одновременно, своего рода многопоточность в VB.

263
14 октября 2005 года
koltaviy
816 / / 16.12.2004
Полностью согласен с высказывнием binaryshadow по поводу GoTo...
Как говорила нам одна из преподов: "Переведите 'GoTo' на русский язык, а потом представьте, что кто-то будет читать ваш код".. :)
3.7K
14 октября 2005 года
SAID
92 / / 06.10.2005
Цитата:
Originally posted by binaryshadow
Во первых забудь что такое GoTo. Без этой дряни вполне можно обойтись, а если использовать то в случае без выходного положения(что смутно мне представляется).

Теперь по делу, скорее всего у тебя получается бесконечный цикл или просто очень долгий, так что рекомендую попробывать вставить где-нибудь DoEvents.

Эта функция даёт возможность работать приложению и циклу одновременно, своего рода многопоточность в VB.



Да впринципе прогу я написал без GoTo стоило только маленько подумать, а вопрос выкинул просто стало интересно. Но всеравно спасибо!!!

1.8K
14 октября 2005 года
ziv
71 / / 04.07.2003
Цитата:
Originally posted by koltaviy
Полностью согласен с высказывнием binaryshadow по поводу GoTo...
Как говорила нам одна из преподов: "Переведите 'GoTo' на русский язык, а потом представьте, что кто-то будет читать ваш код".. :)



а как же обработчики ошибок?

263
15 октября 2005 года
koltaviy
816 / / 16.12.2004
Цитата:
Originally posted by ziv
а как же обработчики ошибок?


On Error Resume Next:
Specifies that when a run-time error occurs, control goes to the statement immediately following the statement where the error occurred where execution continues. Use this form rather than On Error GoTo when accessing objects.

По крайней мере не помню, что у меня была такая необходимость использовать не "Resume Next"

1.8K
15 октября 2005 года
ziv
71 / / 04.07.2003
Цитата:
Originally posted by koltaviy
On Error Resume Next:
Specifies that when a run-time error occurs, control goes to the statement immediately following the statement where the error occurred where execution continues. Use this form rather than On Error GoTo when accessing objects.

По крайней мере не помню, что у меня была такая необходимость использовать не "Resume Next"



может я неправильно воспринимаю эту команду?
на мой взгляд On Error Resume Next предполагает собой обработчик ошибки следующей командой. получается после каждой проверки на ошибку я должен ставить свой обработчик - то бишь множить размер тела программы? или я не прав?
а как же быть с алгоритмом: "если ошибка, то начни с начальной точки"?

263
15 октября 2005 года
koltaviy
816 / / 16.12.2004
Цитата:
Originally posted by ziv
может я неправильно воспринимаю эту команду?
на мой взгляд On Error Resume Next предполагает собой обработчик ошибки следующей командой. получается после каждой проверки на ошибку я должен ставить свой обработчик - то бишь множить размер тела программы? или я не прав?
а как же быть с алгоритмом: "если ошибка, то начни с начальной точки"?


Существуют такие операторы типа
Do While (), к которым вы и вернётесь после проверки на ошибку в теле этого цикла...
Короче нужно показывать на примере, но я полностью уверен, что можно обойтись без GoTo...
Думайте и практикуйтесь!..

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог