Пользовательские функции НЕ пересчитываются - PullRequest
16 голосов
/ 19 апреля 2011

Недавно я взял большой стабильный файл XLSM и разделил его на XLAM и XLSX. Тысячи ячеек в вызове XLSX (udfs) функционируют в XLAM, и каждый такой udf начинается с выражения «Application.Volatile» (избыточное значение, чтобы вызвать повторный вызов).

XLSX НЕ будет пересчитываться ни с F9 по Ctrl-Alt-Shift F9, ни с Cell.Calculate через Application.CalculateFull. Ячейки XLSX просто «мертвы» ... но ... я могу разбудить их одну за другой, если нажму F2, чтобы отредактировать формулу, а затем нажму ENTER. Клетки, пробуждаемые таким образом, похоже, бодрствуют и после этого нормально восстанавливаются.

Кто-нибудь сталкивался с таким странным поведением, и есть ли какие-либо дополнительные способы заставить Excel восстановить график calc с нуля, который я должен попробовать?

Еще одно примечание на случай, если это имеет значение: я открыл XLAM и XLSX через File Open, и не установил XLAM с помощью File ... Options ... Addins route - потому что в прошлом, когда я делал это в тот момент, когда вы "снимите галочку" и установите XLAM, все ссылки UDF будут заменены полными ссылками на пути - довольно уродливо. В качестве альтернативы, если кто-то может наметить обходной путь для установки надстроек XLAM, которые не создают неработающие ссылки везде, я пойду с этим.

Ответы [ 11 ]

0 голосов
/ 29 ноября 2011

У меня была та же проблема ... Я обнаружил (в другом посте), что добавление Application.Volatile в код функции заставило его вычислять с помощью электронной таблицы (f9)

...