Добрый день, всем участникам форума! Решил одну свою задачку (выполнение ряда макросов при пересчете значения формулы) готовым кодом в конкретный лист:
PrivateSub Worksheet_Calculate() 'Updateby Extendoffice Dim Xrg As Range Set Xrg = Range("A8") IfNot Intersect(Xrg, Range("A8")) IsNothingThen Call Show Call Hide EndIf EndSub
При добавлении этого кода после каждого действия файл на несколько секунд-минут зависает в пересчете формул. В начале было много ячеек с формулой СЛУЧМЕЖДУ. Думал проблема в этом. Снес. Все равно пересчитывает. Других летучих формул нет. Пробовал отключать в начале автоматически пересчет формул Application.Calculation = ... и включать в конце кода - увы пересчитывает. Причем даже на любом листе если просто добавлю любое число в любое место - пересчитывает моргая экраном. Убираю код. Все нормально работает. Но остается не решенная задача с запуском других макросов при изменении результата расчеты формулы. Файл нужен будет? (большой, много зачищать нужно будет, если нужно будет подготовлю). P.S. пытался в модуль код добавить и прописал ссылку на конкретный лист перед RANGE - не работает вообще. Буду признателен за совет как подправить код.
Добрый день, всем участникам форума! Решил одну свою задачку (выполнение ряда макросов при пересчете значения формулы) готовым кодом в конкретный лист:
PrivateSub Worksheet_Calculate() 'Updateby Extendoffice Dim Xrg As Range Set Xrg = Range("A8") IfNot Intersect(Xrg, Range("A8")) IsNothingThen Call Show Call Hide EndIf EndSub
При добавлении этого кода после каждого действия файл на несколько секунд-минут зависает в пересчете формул. В начале было много ячеек с формулой СЛУЧМЕЖДУ. Думал проблема в этом. Снес. Все равно пересчитывает. Других летучих формул нет. Пробовал отключать в начале автоматически пересчет формул Application.Calculation = ... и включать в конце кода - увы пересчитывает. Причем даже на любом листе если просто добавлю любое число в любое место - пересчитывает моргая экраном. Убираю код. Все нормально работает. Но остается не решенная задача с запуском других макросов при изменении результата расчеты формулы. Файл нужен будет? (большой, много зачищать нужно будет, если нужно будет подготовлю). P.S. пытался в модуль код добавить и прописал ссылку на конкретный лист перед RANGE - не работает вообще. Буду признателен за совет как подправить код.Anis625
Сообщение отредактировал Anis625 - Среда, 26.05.2021, 08:27
Только маленький нюанс у этого кода - когда включаю его в лист при любом действии он похоже включается (хотя значение ячейки не меняется) и задержка после каждого изменения в любом месте книги на 1-1,5с (заметно визуально). Вроде отключают обновление экрана. Подскажите, пожалуйста, нужно для этого отдельную тему создать с вопросом?
Только маленький нюанс у этого кода - когда включаю его в лист при любом действии он похоже включается (хотя значение ячейки не меняется) и задержка после каждого изменения в любом месте книги на 1-1,5с (заметно визуально). Вроде отключают обновление экрана. Подскажите, пожалуйста, нужно для этого отдельную тему создать с вопросом?Anis625
Serge_007, При добавлении кода макрос (из сообщения 4) включается (т.е. запускаются макросы Hide и Show) при действии в любом месте книги (даже просто если число какое нибудь написать). Решил подправить код, предположил что при условии
oldValue = Cells(8, 1)
вообще ничего происходить не будет. Не получается подправить.
Serge_007, При добавлении кода макрос (из сообщения 4) включается (т.е. запускаются макросы Hide и Show) при действии в любом месте книги (даже просто если число какое нибудь написать). Решил подправить код, предположил что при условии
oldValue = Cells(8, 1)
вообще ничего происходить не будет. Не получается подправить.Anis625
Я думал, что если указал ячейку A8 то макрос только ее смотрит. Нужно чтобы при изменении (результата расчета формулы, любое изменение) ячейки А8 срабатывали два макроса Hide и Show. А если не меняется значение, то ничего не происходило.
Я думал, что если указал ячейку A8 то макрос только ее смотрит. Нужно чтобы при изменении (результата расчета формулы, любое изменение) ячейки А8 срабатывали два макроса Hide и Show. А если не меняется значение, то ничего не происходило.Anis625