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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.07.2009, 01:24   #1
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
Вопрос Можно ли при событии Workbook_SheetChange вызвать Workbook_SheetCalculate?

У меня в обработчике Workbook_SheetCalculate есть несколько действий, совершаемых при вычислении формул, а именно добавление текста в примечание к ячейке при некотором условии.
Можно ли вызывать этот метод при появлении события Workbook_SheetChange?

Допустим, я вставляю строку на лист, т.е. срабатывает SheetChange. При этом в некоторых формулах изменяются адреса, т.е. фактически формула изменилась. Но мне нужно еще, чтобы для всех ячеек выполнился SheetCalculate, чтобы изменилось примечание, т.е. выполнилась часть кода, относящаяся к Calculate!
motorway вне форума Ответить с цитированием
Старый 16.07.2009, 04:43   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

А в чем, собственно, проблема?
Код:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Workbook_SheetCalculate Sh
End Sub
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 16.07.2009, 09:02   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

рискну предположить, что проблема в том, что " именно добавление текста в примечание к ячейке " - это приводит к повторному вызову Workbook_SheetChange рекурсивно...

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

Код:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Application.EnableEvents = False
     Workbook_SheetCalculate Sh
    Application.EnableEvents = True
End Sub
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.07.2009, 17:55   #4
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Цитата:
А в чем, собственно, проблема?
Код:


Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Workbook_SheetCalculate Sh
End Sub
Да, я пробовал, но видимо, неправильный синтаксис был, поэтому у меня была ошибка, и я подумал, что так нельзя. Но в моем случае помогло просто копирование кода в onchange. А в Экселе как раз при добавлении примечания onchange не срабатывает
motorway вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Workbook_SheetChange помогите объединить Neo007 Microsoft Office Excel 1 04.05.2009 22:32
Открытие Form2 в событии FormCreate Form1 Shouldercannon Общие вопросы Delphi 3 22.04.2009 18:09
помощь в событии onkeydown Titan123 Общие вопросы Delphi 2 11.08.2008 17:26
Открытие окна при событии FormCreate. фЁдОр Общие вопросы Delphi 9 06.02.2008 19:37
Программа отлично работает при событии Button1Click, и отказывается работать в FormCreate xTANATOSx Общие вопросы Delphi 3 19.09.2007 08:02