Новости:

К первому сообщению темы должен быть прикреплен файл примера в формате xls*.
Приложив пример, Вы избавите себя и других от вопросов типа "А какой критерий?", "А куда выводить результат?", "А сколько строк?" и все тех же просьб выложить файл. Рисовать за Вас Ваши же таблички с заданиями, а затем и решение к ним, никто желанием не горит. Да и, как показывает практика, в большинстве случаев без файла решения не найти.

Главное меню

Где правильнее расположить новую функцию?

Автор Димычч, 10.10.2012, 07:06

« назад - далее »

Димычч

Добрый день!
Макросы храню в personal.xls, который сам открывается скрытым и никому не мешает. Но вот когда понадобилась рукописная функция, начались неудобства. Сначала я расположил ее модуль в отдельном надстроечном файле. Функция подхватилась корректно, но файл надстроек теперь всегда висел в списке связанных книг. Я решил переместить модуль в personal.xls. После этого формула работать перестала. Чтобы заработала, приходилось каждый раз при вводе форулы прописывать путь к personal.xls. Соответственно, он снова появился в списке связей.
Подскажите, как и где правильнее расположить модуль с функцией, чтобы она бралась аналогично встроенным, и не ссылалась на внешние файлы?

sergo44441

Тут все зависит от функции, в скольких файлах она нужна. если в одном, то лучше в модуле, если в нескольких, то в личную книгу макросов. Во втором случае нужно будет выбирать ее из определенных пользователем функций со ссылкой на файл personal.
Не торопись, и все успеешь намного быстрее

Димычч

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

Alex_ST

Цитата: Димычч от 10.10.2012, 07:06... приходилось каждый раз при вводе форулы прописывать путь к personal.xls ...
??? Это как??? У меня все UDF лежат в Personal.xls и при их вызове нужно просто писАть в ячейке =PERSONAL.XLS!Моя_Функция() и никакого пути к нему указывать не надо, т.к. Excel  и сам знает где лежит Personal.xls
А то, что приходится писать не просто =Моя_Функция(), а указывать, в каком файле она лежит, это естественно.
С уважением, Алексей

Димычч

Прошу прощения, неправильно выразился, не путь, а просто слово "PERSONAL.XLS!" перед функцией писать мне казалось неестественно :), поэтому думал, что я что-то неправильно сделал. Теперь понял, что ошибался.

Alex_ST

А когда Вы в формуле листа пишете ссылку на ячейки ДРУГОГО ЛИСТА ТОЙ ЖЕ КНИГИ, указывать имя листа с восклицательным знаком перед адресом диапазона Вам кажется нормальным? :)
Ну так и обращение к элементам ДРУГОЙ КНИГИ Personal.xls идёт точно по тем же правилам.
С уважением, Алексей

Димычч

Дошло, спасибо :) Подскажите, а можно ли скрыть книгу в окне "Связи"? Personal.xls и функция нужны только мне, а файлом пользуются многие, постоянно спрашивают "А что это в связях такое лишнее? Удалить?"

Alex_ST

Что-то я такого метода не припомню...
А Вы свою функцию (её копию, конечно) не можете расположить в модуле той книги, в которой её используете?
Я обычно так и делаю, когда создаю для кого-нибудь таблицы со своими функциями, которые должны продолжать работать на другом компе.
Ну, можно, конечно, программно разорвать связи, но тогда результаты вычисления по связанным функциям заменятся на значения и функции "умрут"
С уважением, Алексей