Где разместить справочный контент для xlam-файла

Так что у меня есть надстройка Excel, которая, помимо прочего, содержит огромный список псевдонимов. Например, названия стран с их кодами ISO, страны с их континентами и т. Д. И т. Д. (Чтобы я мог легко узнать, что Канада находится в Америке или что национальный язык Кот-д'Ивуара - французский и т. Д.). В настоящее время у меня есть xlam со всеми соответствующими функциями, которые проверяют именованные диапазоны в другой книге.

Итак, подытожив, у меня есть 2 файла:

  • macros.xls (имеет все именованные диапазоны с такими вещами, как Angola = AGO и т. д.), и
  • my_functions.xlam (имеет функции, которые я могу вызвать из Excel, чтобы получить имя псевдонима). Пример функции:

    Функция nti(v) nti = WorksheetFunction.VLookup(Trim(v), Range("macros.xls! Nti"), 2, 0) End Function

Где nti - это функция, которую я использую, а macros.xls! Nti - именованный диапазон, на который я ссылаюсь.

Все это прекрасно работает, но это означает, что для этой функции требуются два файла, поскольку файл.xlam нельзя открывать и редактировать в Excel, только в обозревателе VBA.

Вопрос: Как я могу иметь легко модифицируемые списки и функции, ссылающиеся на эти списки в одном файле? Функции должны быть доступны для других файлов, над которыми я работаю.

Дисквалифицированные решения:

  • Сохраните my_functions.xlam как.xls временно, скопируйте все именованные диапазоны и сохраните его как.xlam. Это будет раздражать каждый раз, когда я хочу внести изменения в именованные диапазоны (что довольно часто).
  • Жестко закодируйте набор из двух массивов столбцов со всеми псевдонимами в каждой функции (иногда тысячи строк). ПОЖАЛУЙСТА, скажи мне, что есть более сексуальный способ...

Заранее спасибо!

1 ответ

Решение

Обычно я просто переключаю свойство IsAddin в XLAM с true на false, редактирую рабочий лист и затем снова переключаю свойство обратно перед сохранением.

Другие вопросы по тегам