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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.02.2009, 23:48   #1
zander
Форумчанин
 
Регистрация: 24.01.2009
Сообщений: 113
По умолчанию Как запустить макрос по изменению значения в ячейке?

Что бы работало так же как Worksheet_Calculate() но не реагируя на изменения значения в любой ячейке на листе, а реагировала только на конретную ячейку
zander вне форума Ответить с цитированием
Старый 23.02.2009, 01:03   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Private Sub Worksheet_Change(ByVal Target As Range)
реагирует на все изменения на листе, а какие из них игнорировать - это вы его сами можете научить.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 23.02.2009, 02:08   #3
zander
Форумчанин
 
Регистрация: 24.01.2009
Сообщений: 113
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
Private Sub Worksheet_Change(ByVal Target As Range)
реагирует на все изменения на листе, а какие из них игнорировать - это вы его сами можете научить.
А как заставить игнорировать события во всех ячейках кроме одной?
zander вне форума Ответить с цитированием
Старый 23.02.2009, 02:09   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Код:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address <> [b4].Address Then Exit Sub
    ' здесь ваш код
End Sub
Код будет запускаться только при изменении значения в ячейке b4

(добавлено)
Код сработает, если Вы вручную (или макросом) изменили значение в ячейке b4
Если же в этой ячейке формула, то событие Worksheet_Change не будет сгенерировано для этой ячейки при пересчёте формулы.
В этом случае надо запоминать последнее значение ячейки, и по событию Worksheet_Calculate проверять, изменилось ли в ней значение.

Последний раз редактировалось EducatedFool; 23.02.2009 в 10:35.
EducatedFool вне форума Ответить с цитированием
Старый 23.02.2009, 10:46   #5
zander
Форумчанин
 
Регистрация: 24.01.2009
Сообщений: 113
По умолчанию

Спасибо! Вот так заработало

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> [K22].Address Then макрос

End Sub
zander вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как запустить макрос из ячейки? Maxx Microsoft Office Excel 8 15.04.2009 15:47
Слепил макрос, как его запустить? zander Microsoft Office Excel 7 12.02.2009 19:51
Как присвоить ячейке имя? Maxx Microsoft Office Excel 2 01.11.2008 11:30
Как запустить макрос при изменении другой книги Excel? Град Microsoft Office Excel 12 10.06.2008 10:01
Фиксация даты измения значения в ячейке Python Microsoft Office Excel 7 13.12.2006 20:47