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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 16.12.2007, 00:56   #1
boocephal
Новичок
Джуниор
 
Регистрация: 16.12.2007
Сообщений: 2
По умолчанию Проверка изменения ячейки

Здравствуйте, начинаю разбираться в VBA и столкнулся с небольшой проблемой.

Есть динамически изменяемая ячейка. Требуется выполнить некое уловие если ячейка изменилась. На данный момент у меня используется таймер, который раз в секунду исполняет цикл проверки изменилась ли ячейка.

Можно ли это сделать проще?
Пока у меня так:
Код:
Sub SleepVB(Seconds)
    Dim Start
    Start = Timer
    Do While Timer < Start + Seconds
          DoEvents
    Loop
End Sub
...

Call SleepVB(1)
boocephal вне форума
Старый 16.12.2007, 01:55   #2
Pavel55
Форумчанин
 
Регистрация: 21.08.2007
Сообщений: 292
По умолчанию

Другого варианта не подскажу, но скажу, что в вашем варианте надо правильно объявить переменные, а именно
Код:
Sub SleepVB(Seconds As Long)   
    Dim Start  As Date
Pavel55 вне форума
Старый 17.12.2007, 05:02   #3
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Можно использовать событие изменения значения ячейки на листе. Например, пусть контролируемая ячейка - "A1". Тогда, вставив в модуль листа книги код:
Код:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    Dim VRange As Range
    Set VRange = Range("A1")
    If Not Intersect(Target, VRange) Is Nothing Then
        'исполняемый код в случае изменения значения ячейки
        'поместить сюда
    End If
End Sub
Вот и все.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 17.12.2007, 16:02   #4
boocephal
Новичок
Джуниор
 
Регистрация: 16.12.2007
Сообщений: 2
По умолчанию

Сейчас попробую.
boocephal вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как разделить число и текст в одной ячейки на две ячейки. neboskreb Microsoft Office Excel 2 15.04.2008 19:39
Изменения в настройках Иллидан Общие вопросы Delphi 3 19.01.2008 23:50
оптимизация изменения данных Lunatikus БД в Delphi 6 03.07.2007 11:47
Изменения алгоритма delphi_beginner Общие вопросы Delphi 2 13.05.2007 21:27