Любые предложения по наилучшей практике для решения этой проблемы?Расширение Excel над UDF проблемой
Я написал надстройку Excel, которая предоставляет UDF (пользовательские функции рабочего листа). Все хорошо, пока один пользователь не отправит свою книгу с помощью этих функций другому пользователю или просто попытается использовать книгу на нескольких компьютерах, где надстройка была установлена на разные пути.
Даже если единственной разницей в путях является буква диска, когда рабочая книга открыта на другом компьютере, старый полный путь появляется в формулах перед всеми UDF, а формулы возвращают ошибку.
Один из способов борьбы с этим - поиск & замените все формулы в книге, заменив путь пустой строкой. Затем формулы перезагружаются для пути надстройки на текущем компьютере. Иногда мне приходится идти в VBE и запускать CalculateFullRebuild, чтобы заставить формулы работать. Несмотря на то, что это работает, многие спрашивают о менее технических пользователях, и это раздражает, когда приходится часто делать это для тех пользователей, которые много перемещают свои книги.
Предложения?
Также - у COM-надстроек есть эта проблема? Моя надстройка - это xla. Хотя мне это интересно, в этом случае это спорный вопрос, поскольку надстройки COM не работают в Macintosh Excel, и мне нужно, чтобы эта надстройка работала межплатформенной.
UPDATE:
В соответствии с просьбой, вот скриншот:
Screenshot showing path in formula http://i62.tinypic.com/axz68n.png
Этот скриншот показывает, что происходит, если Фред, который положил надстройку в C: \ Фреда инструменты \ Фреда Excel Материал \ MyAddin.xla отправляет свою книгу Марте, которая помещает ту же надстройку в другой путь, такой как файлы C: \ Martha's Files \ Martha Excel \ MyAddin.xla, а Марта открывает файл, отправленный Fred.
Если Martha удаляет путь, оставив в формуле только «= MyUDF()», Excel найдет MyAddin.xla на компьютере Марты на пути, на котором Марта положила его (если предположить, что она ранее установила MyAddin.xla в качестве дополнения -in в Excel) и правильно разрешить формулу.
Грег использует путь UNC, а не букву диска. Это должно позаботиться об этом. –
Можете ли вы скриншоты некоторых примеров ...? – ja72
@ David Zemens: Как бы я это сделал? Ни разработчик, ни пользователь никогда вообще не входят в путь к надстройке. Excel делает это самостоятельно.Вы говорите, что когда пользователь вводит формулу, они должны включать UNC-путь к надстройке в формуле, один раз для каждого экземпляра любого UDF в формуле? Это было бы абсурдным требованием. –