Запустить UDF после других функций?
У меня есть UDF, который собирает результаты других функций и отправляет их в веб-API, который вычисляет и отправляет ответ. например
A B C D
7 =CalcResult(E7, F7) =CalcResult(G7, H7) 234 =SendToAPI(A7,B7,C7)
8 =CalcResult(E8, F8) =CalcResult(G8, H8) 274 =SendToAPI(A8,B8,C8)
9 ... ... ... ...
Что происходит, когда вы запускаете SendtoAPI, он отправляет API дважды, один с 2 нулями и значением в c, затем второй с правильными данными после завершения calcResult.
Есть ли способ заказа, который вызывается первым?
Установить SendToAPI для запуска в последний раз?
1 ответ
UDF часто вычисляются более одного раза в последовательности вычислений, когда они вызываются с еще не рассчитанными параметрами. Неисчисляемый параметр варианта отображается в UDF как пустой вариант, поэтому решение состоит в том, чтобы выйти из UDF без отправки в веб-API, если какой-либо из параметров пуст.
Смотрите страницу моего сайта http://www.decisionmodels.com/calcsecretsj.htm для более подробной информации.
И мой пост в блоге https://fastexcel.wordpress.com/2011/11/25/writing-efficient-vba-udfs-part-7-udfs-calculated-multiple-times/