Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/25: Рейтинг темы: голосов - 25, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 03.11.2016
Сообщений: 2
1

Пересчет формул только на одном листе

03.11.2016, 11:04. Показов 4882. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток, форумчане!

Столкнулся со следующей проблемой:
На нескольких листах в формулах используются одни и те же пользовательские функции. Необходимо, чтобы при изменении значении в любой ячейке на листе, пересчитывались все формулы, но ТОЛЬКО НА ЭТОМ листе.
Т.е. Application.Volatile не подходит, ибо пересчитывает все формулы на всех листах. Причем при таком пересчете пользовательские функции используют значения ячеек с листа, с которого был инициирован пересчет.

Видится два варианта решения вопроса:
1) Сделать так, чтобы пересчитывались значения только на том листе, на котором произошло изменения ячейки. (пытался использовать Calculate. Возможно как-то криво его прописывал).
2) Сделать так, чтобы пересчитывались все листы, но на каждом листе использовались значения ячеек с этого же листа.

Пожалуйста, помогите с реализацией.

P.S. понимаю, что вопрос, скорее всего, глупый, ибо самостоятельно начал осваивать vba совсем недавно. Гугление не дало результатов.
Выложить Excel'вский файл проблематично, ибо корпоративная тайна.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.11.2016, 11:04
Ответы с готовыми решениями:

Пересчет формул только для 1 листа
Подскажите, пож. Ситуация: программный пересчет объемных данных на листе 1; генерируются...

Пересчет данных на листе Excel
Извините за тупость, но можно ли сделать так, чтобы данные на листе Excel пересчитывались не на...

Не работает автоматический пересчет формул на листах
При создании макроса на одном компе использовалась функция отключения автоматического пересчета...

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

2
5612 / 1596 / 414
Регистрация: 23.12.2010
Сообщений: 2,392
Записей в блоге: 1
03.11.2016, 11:47 2
В объектный модуль ЭтаКнига вставить:
Visual Basic
1
2
3
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Sh.Calculate
End Sub
0
0 / 0 / 0
Регистрация: 03.11.2016
Сообщений: 2
04.11.2016, 11:15  [ТС] 3
А что тогда в самом коде функций прописывать?

Добавлено через 43 минуты
На всякий случай дам ещё одно пояснение: нужный мне эффект достигается, если прописать в функциях Application.Volatile, после чего на каждой странице нажать Shift+F9 (пересчет формул). Но сразу после сохранения документа он Excel пересчитывает формулы на всех страницах, используя значения со страницы, открытой перед сохранением.
Собственно, два варианта, которые я описал выше, актуальны - нужна реализация.
0
04.11.2016, 11:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.11.2016, 11:15
Помогаю со студенческими работами здесь

Анализ отчета на одном листе
Добрый вечер! Появилась потребность автоматизировать некоторый отчет. Приведу пример. Вот допустим...

Защищённые и обычные ячейки на одном листе
Как сделать, чтобы значение какой-либо ячейки можно было менять программно и одновременно нельзя...

2 макроса на одном листе, как сделать?
Доброго времени суток! VBA не знаю. При добавлении второго макроса выдает ошибку - Compile error:...

Поиск значений на одном листе и копировании на другой в Excel
Будьте добры подсказать как будет выглядеть код, который выполнял бы поиск значений из ЛИСТ2 в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru