![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 15.12.2008
Сообщений: 3
|
![]()
Мне нужно сделать выход из цикла по нажатию какой-либо клавиши.
Вставляю в тело цикла проверку нажатия на кнопку "Enter", но никакой реакции. Программа отказывается реагировать на внешнее воздействие. Только по завершению цикла идёт обработка произведённых нажатий, когда мне это уже не надо. Почему циклы не видят управления и как с этим бороться? Код имеет вид примерно следующий: For x = 1 to 100 ... If KeyCode = "13" Then ... ... Next x Условие после Then выполняется только после завершения цикла, в данном примере когда х станет равным 100, а не сразу после нажатия. |
![]() |
![]() |
#2 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]() Цитата:
К тому же, за время выполнения цикла (при таком количестве итераций оно составит доли миллисекунды) Вы просто не успеете нажать клавишу... Кроме того, переменная KeyCode обычно имеет тип Integer, поэтому правильнее написать KeyCode = 13 вместо KeyCode = "13" Можно сделать так: Код:
Правильнее было бы организовать обработку нажатия клавиши так: Код:
Хотелось бы посмотреть весь код... не пойму, как внутри цикла в переменную записывается код нажатой клавиши.
__Полезные надстройки для Excel. Парсинг сайтов и файлов.
![]() Последний раз редактировалось EducatedFool; 15.12.2008 в 02:24. |
|
![]() |
![]() |
#3 | |||||
Регистрация: 15.12.2008
Сообщений: 3
|
![]() Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Я делал ещё так: Do Until KeyCode = 13 ... Loop Т.е. выполнять цикл пока не будет нажат Enter, но бестолку. |
|||||
![]() |
![]() |
#4 | ||
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]() Цитата:
Каким образом код нажатой клавиши записывается в переменную KeyCode? Обычно обработчик какого-либо события записывает значение кода нажатой клавиши в эту переменную, но вызвать в цикле обработчик вряд ли получится ![]() Цитата:
Опишите, чего Вы пытаетесь добиться, а также приведите ВЕСЬ код, присутствующий в документе. Так будет намного понятнее... |
||
![]() |
![]() |
#5 | |
Регистрация: 15.12.2008
Сообщений: 3
|
![]() Цитата:
Перемещение идёт вниз по ячейкам Excel при нажатии на Enter. Я делаю код в Excel. |
|
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
С этим надо бороться... | Карась | О форуме и сайтах клуба | 10 | 01.06.2008 11:10 |
Проблема с организацией циклов | Иринкаа | Помощь студентам | 7 | 24.11.2007 18:12 |