Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2009, 23:13   #1
alural
Новичок
Джуниор
 
Регистрация: 27.11.2009
Сообщений: 5
По умолчанию Отключение вычислений в Мастере функций

Возможно ли - для функции пользователя - отключить вычисления, которые Мастер функций выполняет при вводе аргументов, до тех пор, пока не будут введены все аргументы? Или до нажатия Ок.
alural вне форума Ответить с цитированием
Старый 27.11.2009, 23:33   #2
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

и Вам привет alural.
"введены все аргументы? Или ... Ок." - а почему нет(?), технически вполне возможно:
для первого варианта можно организовать проверку внутри функции
для варианта с кнопкой потребуетя переменная уровня приложения.
ответ положительный.
Подозреваю следующим вопросом будет "Как сделать?"
Евгений.
P.S. у меня к Вам встречный вопрос: хотел поздороваться но забыл, или забил

Последний раз редактировалось Teslenko_EA; 27.11.2009 в 23:36.
Teslenko_EA вне форума Ответить с цитированием
Старый 27.11.2009, 23:58   #3
alural
Новичок
Джуниор
 
Регистрация: 27.11.2009
Сообщений: 5
По умолчанию

Привет и Вам, Евгений
Сначала на встречный вопрос отвечу - не пригляделся, пока, к стилю общения на форуме, извините.
Подозрение о следующем вопросе - справедливо.
О том, что технически возможно все, что не запрещено документацией и даже чуть больше - догадываюсь.

1) "Организовать проверку внутри функции". Предлагается, что-то вроде IsMissing для каждого параметра? Нудно; для каждой такой функции придется прописывать свой набор проверок.
Мечталось о чем-то вроде Application.Calculation, но действующего на Мастера, а не на книгу.
2)Идею о "переменной уровня приложения" не понял, поясните,пожалуйста.

Александр
alural вне форума Ответить с цитированием
Старый 28.11.2009, 00:27   #4
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

проверка может быть выполнена подобным образом:
Код:
Function rusult(vVal, Optional s1$, Optional s2$, Optional s3$)
'vVal - текущее значение объекта
If Len(s1) * Len(s2) * Len(s3) = 0 Then
    rusult = vVal
Else
    rusult = s1 + s2 + s3
End If
End Function
вариант с кнопкой может быть без привязывания функции, просто назначить кнопке выполнение подобной конструкции
Код:
Function rusult()
    [a1] = [b1] + [c1]...
End Function
иначе
Код:
Public bRun As Boolean
Function runCalc() 'нажатие кнопки
    bRun = True
End Function
Function rusult(vVal, s1$, s2$, s3$)
If bRun Then
    rusult = s1 + s2 + s3
    bRun = False
Else
    rusult = vVal
End If
End Function
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 28.11.2009, 00:58   #5
alural
Новичок
Джуниор
 
Регистрация: 27.11.2009
Сообщений: 5
По умолчанию

Предложения понятны, от обсуждения уклонюсь.
Попробую изменить формулировку вопроса.
Как можно средствами VBA управлять свойствами Мастера функций, в частности, запрещать ему пересчет пользовательской функции до окончания ввода параметров?
alural вне форума Ответить с цитированием
Старый 29.11.2009, 19:17   #6
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте alural.
"средствами VBA...запрещать...пересчет пользовательской функции до окончания ввода параметров":
такой "запрет" реализован в образце функции:
Function rusult(vVal, Optional s1$, Optional s2$, Optional s3$)
до ввода всех (в данном случае трех) аргументов, функция возвращает объект vVal (собственное значение объекта)
поэкспериментировать с её применением в Excel можно разместив в ячейке A3 формулу - =rusult(A3;A4;A5;A6), и вводить текст в ячейки A4;A5;A6. Ругаться на цыклическую ссылку будет но и от работы не откажется.
Евгений.

Последний раз редактировалось Teslenko_EA; 29.11.2009 в 19:20.
Teslenko_EA вне форума Ответить с цитированием
Старый 29.11.2009, 19:52   #7
alural
Новичок
Джуниор
 
Регистрация: 27.11.2009
Сообщений: 5
По умолчанию

Привет, Евгений.
С этим вариантом все ясно, все работает. Но согласитесь, это не управление Мастером
Пока тема обсуждалась, я, похоже, убедился, что Мастер'ом управлять не получится, FunctionWizard метод без (документированных) параметров.
Спасибо за обсуждение, отрицательный результат, тоже результат.
alural вне форума Ответить с цитированием
Старый 29.11.2009, 20:34   #8
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Александр Вы правы, отсутствие результата - тоже разультат.
простите но я думал Вам достаточно избавиться от проблем возникающих в процессе "вычисления, которые Мастер функций выполняет при вводе аргументов", жаль что это не так.
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 29.11.2009, 20:49   #9
alural
Новичок
Джуниор
 
Регистрация: 27.11.2009
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Teslenko_EA Посмотреть сообщение
Александр Вы правы, отсутствие результата - тоже разультат.
простите но я думал Вам достаточно избавиться от проблем возникающих в процессе "вычисления, которые Мастер функций выполняет при вводе аргументов", жаль что это не так.
Евгений.
Не о чем не жалейте, обсуждение, действительно было полезно.
Но в данной ситуации мне "шашечки" были важнее, чем "ехать". Извините.
alural вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Построение графиков функций С++ (методы аппроксимации функций) amdbodia Общие вопросы C/C++ 0 24.05.2009 15:28
использование функций в качестве параметров других функций mono Помощь студентам 0 20.04.2009 18:25
Произвести вычисление значений функций. Результаты вычислений вывести в компонент ListBox Настенька..Блонди Помощь студентам 1 10.04.2009 00:32
Сортировать результаты вычислений Jana Microsoft Office Excel 2 03.11.2008 08:36
нужна прога для вычислений функций методом Фибоначчи. на паскале или дельфе. ildarik Помощь студентам 1 18.06.2007 00:10