Неспособность передать аргументы UDF в VBA для Excel 2007 - PullRequest
2 голосов
/ 20 ноября 2008

У меня есть сложная итеративная электронная таблица, в которой я хочу использовать UDF для расчета коэффициента теплопередачи теплообменника. Функция имеет 5 аргументов (2 строки и 3 двойника). Струны и 1 двойной проход просто отлично. Оставшиеся два, похоже, не проходят вообще. Наблюдение за проблемными аргументами показывает, что они равны нулю. Я попытался переопределить аргументы как варианты, и тогда я могу найти нужное значение в поле «value2». Однако, как только я пытаюсь получить к нему доступ (через varName.Value2), он исчезает (часы внезапно отображают поле как «Пустое»).

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

Кто-нибудь видел это раньше и знает об обходном пути?

1 Ответ

3 голосов
/ 21 ноября 2008

Я использую UDF с +6 входными переменными (стандартные типы, а также варианты), и я заметил (это моя интерпретация того, что происходит), что иногда механизм excel calc пытается вызвать UDF перед всеми входными значениями стать просчитанным и доступным. С точки зрения отладки это видно как функция, выполняющая «ложные запуски» и останавливающая выполнение промежуточной процедуры (поток потерян), поэтому при отладке она показывает странное поведение.

Однако при записи в ячейку функция все равно вычисляет и возвращает правильно.

...