UDF в надстройке xlam, расположенной в XLSTART, добавляют путь при загрузке и не могут быть вызваны - PullRequest
0 голосов
/ 14 июля 2020

Я разрабатываю надстройку Excel VBA (* .xlam), которая определяет как ленту (customUI), так и пользовательские функции. Эта надстройка теперь распространяется среди моих коллег и на каждом P C, хранящемся в папке (конечно, индивидуально)

C:\Users\<username>\AppData\Roaming\Microsoft\Excel\XLSTART

. Это отлично работает, и надстройка полностью функциональна (лента и UDF) ) как таковой для всех пользователей, даже для совместного использования файлов с использованием UDF.

Однако для одного пользователя (итальянская установка, но в остальном, похоже, такая же, как и у любого другого), мы видим следующее:

  • Загрузка файла, который был создан на другом компьютере, изменяет UFD на абсолютный путь (путь действительно правильный):

    ='C:\Users\...\XLSTART\<addinname>.xlam'!myfunc(B128, C34)
    
  • UDF не оценивает, но выдает ошибку #NAME.

  • Замена всех 'C:\Users\...\XLSTART\<addinname>.xlam'! пустыми строками во всех формулах делает UDF найденными и работающими.

  • Использование UDF в новых формулах, конечно же, тоже работает.

Мое подозрение следующее: Excel считает по необъяснимой причине, что UDF происходят из другой надстройки, но находятся в t он же расположение файла. Но поскольку xlam -файл уже открыт, он заблокирован для повторного открытия.

Mr. Google довольно нечетко на этот счет. Я видел это: Как сделать переносимый вызов XLAM UDF? , но в моем случае путь определенно не сохраняется в электронной таблице. Данный ответ, в частности,

Добавьте код в XLAM, который проверяет ссылки для каждой открытой книги, и если ссылка указывает на ваш XLAM, но по другому пути, он выполняет поиск и замену, чтобы путь исправлен.

все еще возможно, но я нахожу это таким взломом и надеюсь, что есть более легкое решение, и по опыту он укусит меня в ответ, если я не пойму, что вызывает это поведение.

Моя цель - естественно развернуть программное обеспечение таким образом, чтобы пользователи не наблюдали подобных проблем при совместном использовании файлов с использованием UDF этой надстройки.

Заявитель : Я смогу исследовать этот вопрос дальше на P C моего коллеги, но это может занять пару дней. Пожалуйста, не интерпретируйте это как безразличие. Кроме того, надстройка большая и внутренняя. Я с трудом могу сгенерировать mcve или что-то подобное.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...