Страницы: 1
RSS
Обновить расчет данных при изменении значения ячейки
 
Доброго всем. Прошу помочь. Вот пример. Выбираем из двух значений первое (карниз прямой). Как добиться, что бы было обновление посчитанных данных. Там все видно в примере... Искал на форуме, были примеры, но почему то мне не подходило, приходится вручную обновлять...
Спасибо!
 
При выборе карниза макрос срабатывает. Только пример скудный и непонятно, что должно быть. Да и формула с ДВССЫЛ какая-то явно корявая.
 
Доброго утра. Замените "ДВССЫЛ" на "INDIRECT" и заработает.
Но можно мне тоже объяснить, в чем конкретно кроется разница между тем, когда формула вводится в ручную и когда ее вводит макрос?
Конкретно в данном примере, я так понял, формулы типа умножения и сложения обновляются сразу же без проблем, а ДВССЫЛ отпределяется как текст что ли?! и возвращает ошибку ИМЯ!
Изменено: Shama - 28.05.2021 07:06:11
Не перестаю удивляться возможностям excel и VBA.
 
Цитата
Shama написал:
Но можно мне тоже объяснить, в чем конкретно кроется разница между тем, когда формула вводится в ручную и когда ее вводит макрос?
Очень спасибо! Просто заводится стандартный элемент, потом в ручную вводятся параметры... (они в примере не прописаны, облегчил его).  Хочется что бы считало и оформление сразу было... Другого не нашел. Спасибо еще раз!
Изменено: Николай Ващенко - 28.05.2021 10:31:39
 
Николай Ващенко, рад был помочь. Просто поэксперементировал с разными вариантами и один "выстрелил".
Цитата
Николай Ващенко написал:
Просто заводится стандартный элемент, потом в ручную вводятся параметры... (они в примере не прописаны, облегчил его).  Хочется что бы считало и оформление сразу было
Это понятно. Мой вопрос, и то что мне до сих пор не понятно - почему же выстрелил?) почему появлялась ошибка "ИМЯ!" в формуле ДВССЫЛ, когда ее прописывает макрос.

ЗЫ. Ответ на свой(глупый))) вопрос нашел. Что бы ексель понял и подсчитал формулу из макроса нужно:
1. прописывать ее на английском языке,например
Код
Range("A3") = "=INDIRECT(""A1"")"

2. или прописывать ее на другом языке, но при этом указать свойство .FormulaLocal, "на языке пользователя", например
Код
Range("A3").FormulaLocal = "=ДВССЫЛ(""A1"")"
Третьего, я так понимаю, не дано. В примере ниже ексель не поймет что такое "ДВССЫЛ" в своих базовых формулах(на английском языке). Поэтому отображаться она будет правильно, но за формулу распознана не будет:
Код
Range("A3") = "=ДВССЫЛ(""A1"")"
Изменено: Shama - 28.05.2021 11:17:00
Не перестаю удивляться возможностям excel и VBA.
Страницы: 1
Наверх