Страницы: 1
RSS
отключение вычислений в Мастере функций
 
Доброго времени!  
Каким образом можно в функции пользователя отключить вычисление Мастером функций результата до тех пор, пока не будут введены все параметры или не будет нажата кнопка Ок?
 
м/б сделать ручной пересчет
 
Alural, чем он Вас смущает? Тормозит?
Bite my shiny metal ass!      
 
Вы хотите, чтоб при вводе очередного аргумента функции, Excel не пытался просчитать результат?    
=========================================================  
Именно.    
И смущает он меня тем, что может не просто тормозить, тормозить ужасно. В зависимости от вункции :)
 
Сделайте, например, так:  
Function Fn(a, b, c, d)  
 If d = Empty Then Exit Function  
 Fn = a & b & c & d  
End Function
 
Это понятно.    
о мечталось об управлении свойствами Мастера функций, раз уж пишем функцию, то грех не воспользоваться какими-то свойствами объекта. Но, похоже, Мастера - вещи в себе, в объектной модели их не нахожу :(
 
Если проблема была не в том, как ускорить мастер функций, а все-таки в доступе к нему, то это мастер действительно - вешь в себе.
 
{quote}{login=ZVI}{date=28.11.2009 08:18}{thema=}{post}Если проблема была не в том, как ускорить мастер функций, а все-таки в доступе к нему, то это мастер действительно - вешь в себе.{/post}{/quote}  
И ускорить - тоже. Не столько ускорить, сколько не дать вычислять, пока нет всех параметров - если параметров много, а функция длинная или циклы в ней, то тут неприятностей  хватает.    
И уж если управлять, то искал универсальное решение. Но - не судьба, MS хитрее :)
 
{quote}{login=Alural}{date=28.11.2009 08:49}{thema=Re: }{post}  
...не дать вычислять, пока нет всех параметров - если параметров много, а функция длинная или циклы в ней, то тут неприятностей  хватает.    
...{/post}{/quote}  
Тогда не понятно, ведь предложенный мною вариант это и делает: пока не будет введен последний параметр функции (в примере это d), срабатывает мгновенный выход по Then Exit Function и никакого пересчета не происходит.  
 
В этом легко убедиться введя в ячейку формулу: =Fn(1;2;3;4), затем вызвав мастер функций и удалив все значения аргументов функции. При вводе новых агрументов результат появится только после ввода d. Что вроде бы и требовалось, или нет?
 
Да, я выше писал, что это вариант понятный.  
Но - требует в каждой функции проекта (или, по крайней мере, в критических) вставки проверки для последнего (или всех - для случая, когда параметры опциональны) параметра проверки IsMissing.  
Элегантнее было бы управлять Мастером, но Wizard явно не объект. Была надежда, вдруг я что-то просмотрел, но пока все предлагаемые решения сводятся квозврату пустого результата, пока есть пустые параметры.
 
Извините, регистрация слетела.
Страницы: 1
Читают тему
Наверх