Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.02.2010, 15:14   #1
novak_26
Пользователь
 
Аватар для novak_26
 
Регистрация: 23.02.2010
Сообщений: 39
По умолчанию Есть в VBA аналог "repeat until keypressed" (из Pascal) ? (-)

собственно
novak_26 вне форума Ответить с цитированием
Старый 28.02.2010, 15:20   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Да, есть. Точнее, можно реализовать.
Через WinAPI опрашивать клавиатуру - и останавливать макрос в случае нажатия определённой кнопки\кнопок.

PS: Проще сделать отдельную кнопку (на форме, или на листе) для остановки макроса.
Есть и другие способы.
EducatedFool вне форума Ответить с цитированием
Старый 28.02.2010, 15:46   #3
novak_26
Пользователь
 
Аватар для novak_26
 
Регистрация: 23.02.2010
Сообщений: 39
По умолчанию

для такого случая что лучше подойдёт?
Есть большая таблица, например, 1 столбец и 100 строк из чисел от 0 до 10, числа больше 5 подсвечены условным форматированием красным цветом. Нажатием на любую клавишу клавиатуры(/мыши) очередная красная ячейка из нижних становится активной, т.е. пользователь может ёё Увидеть и оценить её "красность" (критичность).
novak_26 вне форума Ответить с цитированием
Старый 28.02.2010, 19:02   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Скачайте файл: http://excelvba.ru/XL_Files/Sample__...__20-58-36.zip

Поставьте курсор в первый столбец, и нажимайте клавишу "пробел", пока не надоест.

Можно определить для макрос любую другую клавишу (или сочетание клавиш)
Код:
Private Sub Workbook_Open()
    Application.OnKey " ", "test"
End Sub
Вот сам макрос:
Код:
Sub test()
    Application.ScreenUpdating = False
    ActiveCell.Offset(1).Select
    While ActiveCell <= 5 And Not Intersect(ActiveCell, ActiveSheet.UsedRange) Is Nothing
        ActiveCell.Offset(1).Select
    Wend
End Sub
EducatedFool вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Есть ли аналог "Range()=Array()" как в Excel? DoctorDron Microsoft Office Word 2 15.02.2010 09:40
аналог "keypressed" myke Общие вопросы C/C++ 7 07.12.2009 18:25
"аналог" getch, есть ли?? viktory Помощь студентам 3 20.10.2009 23:12
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04
Нет в русском языке "ложит", есть - "кладет". mihali4 Свободное общение 25 01.04.2008 11:19