Всем привет! Столкнулся с совершенно неожиданным глюком при расчете формул в Экселе. Может, кто-то что-то подобное видел, или знает, как можно решить проблему.?
В ячейке D28 формула. В ячейке C29 – тоже формула, просто ссылка на D28. В ячейку D3 вводим ноль. Значение в ячейке D28 сразу же пересчитывается. А вот в C29 – нет, хотя это просто ссылка на D28!
Если в C29 кликнуть мышкой (режим редактирования формулы) и просто нажать ввод – то в значение в ней тоже пересчитывается. Проблема возникает, если открыть файл и сразу ввести 0 в D3. А если открыть файл, проскроллить влево и сперва отобразить колонку С – то не воспроизводится. Версия Экселя – 2013.
Почему это большая проблема? Потому что это большой отчет, который строится макросом, с кучей закладок и расчетных формул, которые наши менеджеры строят в больших количествах. И очень не хочется получить ситуацию, когда во всех отчетах будет это проблема – в одной ячейке что-то меняем, и ключевые показатели отчета вроде бы после этого не меняются, хотя на самом деле – значение у них должно быть другое, пересчитанное.
Кто-нибудь сталкивался с чем-то подобным? Есть идеи, как можно решить эту проблему? Т.е. подстраховаться от того, чтобы в новых отчетах это случайно не воспроизвелось опять.
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок. А в том, чтобы писать программы, работающие при любом количестве ошибок.
У меня пересчитываются обе ячейки. Возможные варианты: - в файле много вычислений и происходит задержка пересчета ячейки; - попробуйте сохранить с открытым столбцом С; - какой-то внутренний глюк и мешает объединение. Разъедините ячейки. Можно визуально отображать по центру, без объединения: выделить ячейки в сроке, Формат-Выравнивание-По-центру_выделения.
Это давняя проблема не отображения на экране обновленного значения ячейки с формулой, которая попала в скрытый при скроллировании столбец (объединенная ячейка или с форматом 'По центру выделения'). Но можете быть уверены в том, что формула ячейки безусловно пересчитывается, несмотря на то, что результат не обновляется на экране, в этом легко убедиться, если в видимой области (E29) написать формулу =C29. Такая ситуация случается и без закрепления области листа. Если меняете значение макросом, то просто добавьте в конце перерисовку экрана: Application.ScreenUpdating = True