Приветствую! Возник вопрос. Сегодня решил все-же заменить давно установленную чужую надстройку сумма прописью на свою. Открыл свою надстройку с UDF, скопировал свою UDF в новую книгу, чуть подправил и стал тестить. В одной ячейке этой книги запустил новую функцию, а в другой - старую из надстройки. Получил ошибку - недопустимое имя. (UDF из надстройки) Сменил имя новой UDF - итог тот же. Пробовал перезапустить и файлы, и Excel - не работает. Причем в других файлах работают обе функции, в мастере они исправно исчезают и появляются. Где могла собака порыться? Если это просто глюк файла - мне скопировать код в новую книгу не сложно. А если ???
Приветствую! Возник вопрос. Сегодня решил все-же заменить давно установленную чужую надстройку сумма прописью на свою. Открыл свою надстройку с UDF, скопировал свою UDF в новую книгу, чуть подправил и стал тестить. В одной ячейке этой книги запустил новую функцию, а в другой - старую из надстройки. Получил ошибку - недопустимое имя. (UDF из надстройки) Сменил имя новой UDF - итог тот же. Пробовал перезапустить и файлы, и Excel - не работает. Причем в других файлах работают обе функции, в мастере они исправно исчезают и появляются. Где могла собака порыться? Если это просто глюк файла - мне скопировать код в новую книгу не сложно. А если ???RAN
Быть или не быть, вот в чем загвоздка!
Сообщение отредактировал RAN - Среда, 21.11.2012, 20:54
Файлы оставил на работе. Но быстренько сотворил аналог. В надстройке "Избранные" лежит UDF РубПропись. В этом файле ее копия РубПропись1. В новом файле работают обе функции, а в этом - нет.
Файлы оставил на работе. Но быстренько сотворил аналог. В надстройке "Избранные" лежит UDF РубПропись. В этом файле ее копия РубПропись1. В новом файле работают обе функции, а в этом - нет.RAN
Андрей, а где надстройка-то? В твоём файле UDF РубПропись1 работает, т.к. для неё есть процедура в модуле. А UDF РубПропись не работает, естественно, т.к. для неё процедуры нет.
А если UDF РубПропись у тебя лежит в надстройке, то попробуй вызывать её с указанием имени файла надстройки и восклицательным знаком перед именем функции. Вот, например, у меня в Personal.xls лежит функция ИЗВЛЕЧЬ_ЦЕЛЫЕ Чтобы её вывести на лист книги мне приходится писАть
Code
=Personal.xls!ИЗВЛЕЧЬ_ЦЕЛЫЕ(A1)
Андрей, а где надстройка-то? В твоём файле UDF РубПропись1 работает, т.к. для неё есть процедура в модуле. А UDF РубПропись не работает, естественно, т.к. для неё процедуры нет.
А если UDF РубПропись у тебя лежит в надстройке, то попробуй вызывать её с указанием имени файла надстройки и восклицательным знаком перед именем функции. Вот, например, у меня в Personal.xls лежит функция ИЗВЛЕЧЬ_ЦЕЛЫЕ Чтобы её вывести на лист книги мне приходится писАть
Надстройка у меня на компе осталась. Но как вариант - переименуй функцию обратно, сохрани файл как надстройку, и запусти оба файла. Будет две функции с разными именами. А работать будет одна.
Надстройка у меня на компе осталась. Но как вариант - переименуй функцию обратно, сохрани файл как надстройку, и запусти оба файла. Будет две функции с разными именами. А работать будет одна.RAN
Андрей, я в своём предыдущем посте дополнил про правила вызова. Я знаю, что из надстроек вроде бы функции должны вызываться напрямую, но что-то мне это сомнительно, т.к. надстроек может быть открыто одновременно несколько и потому вполне может возникнуть дубляж и конфликт имён.
Андрей, я в своём предыдущем посте дополнил про правила вызова. Я знаю, что из надстроек вроде бы функции должны вызываться напрямую, но что-то мне это сомнительно, т.к. надстроек может быть открыто одновременно несколько и потому вполне может возникнуть дубляж и конфликт имён.Alex_ST
Добавил надстройку. В любом другом файле работают обе функции. По поводу вызова. У меня в надстройке есть кнопочка "Редактировать", превращающая надстройку в xls. Если ее нажать, в именах UDF из надстройки добавляется имя книги.
Добавил надстройку. В любом другом файле работают обе функции. По поводу вызова. У меня в надстройке есть кнопочка "Редактировать", превращающая надстройку в xls. Если ее нажать, в именах UDF из надстройки добавляется имя книги.RAN
Быть или не быть, вот в чем загвоздка!
Сообщение отредактировал RAN - Среда, 21.11.2012, 21:46
Да, почему-то не опознаёт юдф-ку из файла надстройки. Но, между прочим, когда я сделал =6252261.xla!РубПропись(A1) , то сразу заработало. А после этого я посмотрел ещё раз в ячейку и увидел, что Excel сам заменил в ней =6252261.xla!РубПропись(A1) на =РубПропись(A1) и при этом "ожили" и формулы в других местах листа. Чудеса!
Да, почему-то не опознаёт юдф-ку из файла надстройки. Но, между прочим, когда я сделал =6252261.xla!РубПропись(A1) , то сразу заработало. А после этого я посмотрел ещё раз в ячейку и увидел, что Excel сам заменил в ней =6252261.xla!РубПропись(A1) на =РубПропись(A1) и при этом "ожили" и формулы в других местах листа. Чудеса!Alex_ST
А ещё чудесатее, что Excel почему-то со временем "забывает", где лежит функция и вместо её результата появляется #ИМЯ?
Если нажать при выборе ячейки на f в строке формул, то выкидывается нормальный диалог ввода аргументов функции. но после нажатия на ОК всё равно результат #ИМЯ? И он превратится в результат только если опять у одной из таких функций на листе указать, где она лежит. Тогда на некоторое время нормально заработает.
Может, что-то в коде? Разбирать, извини, что-то лень: так сегодня на работе натоптался батонов на клаве и натрындился с подрядчиками по телефону, что уже голова не варит, глаза не видят, ухо не слышит.
А ещё чудесатее, что Excel почему-то со временем "забывает", где лежит функция и вместо её результата появляется #ИМЯ?
Если нажать при выборе ячейки на f в строке формул, то выкидывается нормальный диалог ввода аргументов функции. но после нажатия на ОК всё равно результат #ИМЯ? И он превратится в результат только если опять у одной из таких функций на листе указать, где она лежит. Тогда на некоторое время нормально заработает.
Может, что-то в коде? Разбирать, извини, что-то лень: так сегодня на работе натоптался батонов на клаве и натрындился с подрядчиками по телефону, что уже голова не варит, глаза не видят, ухо не слышит. Alex_ST
У меня получилось так: На листах .xls удалил знак "=" в ячейках с функциями РубПропись1(), РубПропись() Переместил код Function РубПропись1() из .xls в .xla , всё сохранил. Вышел из Экселя. Открыл .xla и .xls . Восстановил знаки "=". Работают обе.
Quote (RAN)
, ввел формулу заново,
У меня получилось так: На листах .xls удалил знак "=" в ячейках с функциями РубПропись1(), РубПропись() Переместил код Function РубПропись1() из .xls в .xla , всё сохранил. Вышел из Экселя. Открыл .xla и .xls . Восстановил знаки "=". Работают обе.SM
Андрей, я проверить сейчас не могу - уже занят на работе, но как вариант: А где у тебя эта надстройка лежит? Если не в Addins'ах, то попробуй-ка её туда положить и запустить или просто из меню "Надстройки" корректно её запустить, а не просто как файл открывать. Может, Excel глючит с надстройками, путь к которым не указан в диалоге подключения надстроек?
Андрей, я проверить сейчас не могу - уже занят на работе, но как вариант: А где у тебя эта надстройка лежит? Если не в Addins'ах, то попробуй-ка её туда положить и запустить или просто из меню "Надстройки" корректно её запустить, а не просто как файл открывать. Может, Excel глючит с надстройками, путь к которым не указан в диалоге подключения надстроек?Alex_ST
С уважением, Алексей MS Excel 2003 - the best!!!
Сообщение отредактировал Alex_ST - Четверг, 22.11.2012, 08:17