Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
kiruchin_nn
0 / 0 / 0
Регистрация: 01.07.2010
Сообщений: 5
1

Выход из бесконечного цыкла по нажатию CommandButton на форме

05.07.2010, 18:03. Просмотров 1215. Ответов 5
Метки нет (Все метки)

Здраствуйте.
Есть форма UserForm1 на ней кнопка CommandButton1
Есть Module1 в нем

Sub gt()
1:

По нажатию на кнопку этот цыкл должен прерваться. Как?
Что мне здесь написать?.

goto 1
End Sub

Зарание благодарен
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.07.2010, 18:03
Ответы с готовыми решениями:

Цикл наполнения листа значениями из TextBox на форме по нажатию CommandButton
Добрый день. Подскажите, на листе1 есть таблица 10 строк 4 столбца. При...

По нажатию на CommandButton последовательно генерировать текст и показывать его в TextBox
Доброго времени суток, уважаемые форумчане. Подскажите, необходим код...

label на форме равняется CommandButton.name
label на форме равнялся CommandButton.name котрый запускает форму

Удаление строки через CommandButton в форме
Задача может показаться кому-то тривиальной, но все же. Нужно реализовать...

Выход из While по нажатию кнопки
Извините за, может быть, простой вопрос, но у меня не получается выйти из цикла...

5
SlavaRus
1094 / 208 / 29
Регистрация: 15.03.2010
Сообщений: 645
06.07.2010, 15:40 2
В модуле пишешь:
Public flag As Boolean

Public Sub тратата()
flag = False
Do
'.............
UserForm1.Show
'.............
Loop Until flag
End Sub

В форме:

Private Sub CommandButton1_Click()
flag = True
Hide
End Sub
0
vlth
12 / 12 / 2
Регистрация: 23.03.2010
Сообщений: 635
06.07.2010, 16:57 3
Подкорректирую то, что написал SlavaRus
(2SlavaRus: Иначе у меня, например, не работает )

Public flag as Boolean

Public Sub тратата()
flag = False
UserForm1.Show
Do
DoEvents
'.............
If flag = True Then UserForm1.Hide
'.............
Loop Until flag
End Sub

Private Sub CommandButton1_Click()
flag = True
End Sub
0
SlavaRus
1094 / 208 / 29
Регистрация: 15.03.2010
Сообщений: 645
06.07.2010, 17:16 4
Я у себя проверил еще раз-вроде работает.
Я понял задачу так:
Есть цикл и внутри него при определенных обстоятельствах вызывается форма. Если на форме была нажата кнопка1 - выходим из цикла.
0
vlth
12 / 12 / 2
Регистрация: 23.03.2010
Сообщений: 635
06.07.2010, 18:15 5
2SlavaRus:

Если просмотреть вопрос kiruchin_nn, то про загрузку
формы в нём вообще ничего нет, поэтому
всё можно переписать так:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Public flag As Boolean
 
Sub gt()
flag = False
Do
DoEvents
'Рабочий код процедуры
Loop Until flag
End Sub
 
Private Sub CommandButton1_Click()
flag = True
End Sub
1. Безусловное выполнение (как в твоём примере) UserForm1.Show в
цикле не позволяет мне нажать на кнопку. Сие зависит, наверное, от
времени выполнения цикла - чем оно короче, тем меньше возможности
сделать клик на кнопке.
2. Отсутствие в процедуре DoEvents не позволяет мне кликнут на кнопке
уже загруженной формы.
0
SlavaRus
1094 / 208 / 29
Регистрация: 15.03.2010
Сообщений: 645
07.07.2010, 09:29 6
For vlth:
Тысячу извинений. Погорячился, был неправ. Я в отладчике прохлопал и решил, что все нормально. Ваш код абсолютно правильный!
0
07.07.2010, 09:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.07.2010, 09:29

Выход из бесконечного цыкла
Проблема с выходом из бесконечного цикла. Если для выхода вводить exit,...

Выход из бесконечного цикла по нажатию клавиши
как выйти из бесконечного цикла по нажатию клавиши? begin: ..... jmp...

Выход из бесконечного цикла по нажатию кнопки.
Привет всем. как можно выйти из такого цикла по нажатию какой любой кнопки...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru