Учет нажатия кнопки

Программирование на Visual Basic for Applications
Tuco
Постоялец
Постоялец
 
Сообщения: 508
Зарегистрирован: 18.06.2003 (Ср) 16:37
Откуда: Подмосковье

Учет нажатия кнопки

Сообщение Tuco » 29.09.2003 (Пн) 14:49

Приветствую всех специалистов и начинающих. Возник такой вопрос. Написал макрос, он правильно работает, но как заставить его считать нажатие на кнопку? Форма не уходит с листа, каждое нажатие на кнопку в этой форме выполняет своё действие. Вот я и хочу, чтобы в переменной фиксировалось количество нажатий. Помогите, пожалуйста.
"There's more than one way to do it!"

corgi
ToyMan
ToyMan
 
Сообщения: 1367
Зарегистрирован: 01.10.2002 (Вт) 9:59
Откуда: Россия, Москва

Сообщение corgi » 29.09.2003 (Пн) 14:53

создай глобальную переменную и в обработчике прибавляй единицу :) :!:
Ничто так не ограничивает полёт мысли программиста, как компилятор

Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 29.09.2003 (Пн) 14:53

Использовать переменную static:

Private Sub CommandButton1_Click()
Static N
N = N + 1
MsgBox "Нажимали уже: " & N
End Sub

Tuco
Постоялец
Постоялец
 
Сообщения: 508
Зарегистрирован: 18.06.2003 (Ср) 16:37
Откуда: Подмосковье

Сообщение Tuco » 29.09.2003 (Пн) 15:27

Спасибо большое, но у меня эта штука не работает. Не знаю, почему, но я пробовал и раньше прибавлять по единице, но MsgBox почему-то всё время выдаёт мне 1. Если бы так просто было, я бы к вам не обращался.
"There's more than one way to do it!"

Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 29.09.2003 (Пн) 15:37

Наверное переменная счетчик была неописана, или описана не словом Static. Или ты выгружаешь из памяти форму оператором Unload...
Ну, тогда так сделай, в модуле макросов проекта, в глобальной его части, опиши переменную:
Public N as long

А в форме сделай так:

Private Sub CommandButton1_Click()

ИмяМодуля.N = ИмяМодуля.N + 1
MsgBox "Нажимали уже: " & ИмяМодуля.N
End Sub

Tuco
Постоялец
Постоялец
 
Сообщения: 508
Зарегистрирован: 18.06.2003 (Ср) 16:37
Откуда: Подмосковье

Сообщение Tuco » 29.09.2003 (Пн) 15:52

Спасибо, теперь все работает!!!
"There's more than one way to do it!"

Штурман
Новичок
Новичок
 
Сообщения: 37
Зарегистрирован: 25.07.2003 (Пт) 10:47
Откуда: Москва

Сообщение Штурман » 02.10.2003 (Чт) 9:15

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

Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 02.10.2003 (Чт) 10:52

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


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

Штурман
Новичок
Новичок
 
Сообщения: 37
Зарегистрирован: 25.07.2003 (Пт) 10:47
Откуда: Москва

Сообщение Штурман » 02.10.2003 (Чт) 11:24

ну тут уж каждый для себя выбирает.


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 42

    TopList