Метка GoTo Почему?
Надо было написать прогу на VBA EXCEL по сути тема программы в данном раздели не важна. В самом начале попробовал написать программу с меткаками GoTo, но после вставки трех гоутушек, и после запуска программы xcel зависает. Вопрос в принципе такой: Почему происходит зависание, и как делать чтобы не зависал( с метками GoTo).
Зарание спасибо.
В принципе проблема такая!
Надо было написать прогу на VBA EXCEL по сути тема программы в данном раздели не важна. В самом начале попробовал написать программу с меткаками GoTo, но после вставки трех гоутушек, и после запуска программы xcel зависает. Вопрос в принципе такой: Почему происходит зависание, и как делать чтобы не зависал( с метками GoTo).
Зарание спасибо.
Во первых забудь что такое GoTo. Без этой дряни вполне можно обойтись, а если использовать то в случае без выходного положения(что смутно мне представляется).
Теперь по делу, скорее всего у тебя получается бесконечный цикл или просто очень долгий, так что рекомендую попробывать вставить где-нибудь DoEvents.
Эта функция даёт возможность работать приложению и циклу одновременно, своего рода многопоточность в VB.
Как говорила нам одна из преподов: "Переведите 'GoTo' на русский язык, а потом представьте, что кто-то будет читать ваш код".. :)
Во первых забудь что такое GoTo. Без этой дряни вполне можно обойтись, а если использовать то в случае без выходного положения(что смутно мне представляется).
Теперь по делу, скорее всего у тебя получается бесконечный цикл или просто очень долгий, так что рекомендую попробывать вставить где-нибудь DoEvents.
Эта функция даёт возможность работать приложению и циклу одновременно, своего рода многопоточность в VB.
Да впринципе прогу я написал без GoTo стоило только маленько подумать, а вопрос выкинул просто стало интересно. Но всеравно спасибо!!!
Полностью согласен с высказывнием binaryshadow по поводу GoTo...
Как говорила нам одна из преподов: "Переведите 'GoTo' на русский язык, а потом представьте, что кто-то будет читать ваш код".. :)
а как же обработчики ошибок?
а как же обработчики ошибок?
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:
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 предполагает собой обработчик ошибки следующей командой. получается после каждой проверки на ошибку я должен ставить свой обработчик - то бишь множить размер тела программы? или я не прав?
а как же быть с алгоритмом: "если ошибка, то начни с начальной точки"?
может я неправильно воспринимаю эту команду?
на мой взгляд On Error Resume Next предполагает собой обработчик ошибки следующей командой. получается после каждой проверки на ошибку я должен ставить свой обработчик - то бишь множить размер тела программы? или я не прав?
а как же быть с алгоритмом: "если ошибка, то начни с начальной точки"?
Существуют такие операторы типа
Do While (), к которым вы и вернётесь после проверки на ошибку в теле этого цикла...
Короче нужно показывать на примере, но я полностью уверен, что можно обойтись без GoTo...
Думайте и практикуйтесь!..