2016-11-16 2 views
1

Рассмотрите следующую ситуацию. У меня есть надстройка Excel с именем «X» с модулем с именем «Y», содержащим функцию с именем «Z». Надстройка «X» включена в Excel через «Файл»> «Параметры»> «Надстройки» ...Разрешение имени функции VBA Excel, надстройка против локального модуля

Открывает книгу Excel с поддержкой макросов, которая содержит свой собственный модуль с именем «A», который содержит функцию с именем «Z» ». (Я буду называть это «локальной» версией функции «Z».)

Вопрос 1) Если я вызываю функцию 'Z' из ячейки листа '= Z()', то функция 'Z' делает excel вызывать по умолчанию? Надстройка «Z» или локальная «Z»? (Если кто-то может указать мне на документ, который хорошо описывает описание области и разрешения имени в Excel VBA, это было бы оценено.)

Вопрос 2) В ячейке таблицы есть какой-либо синтаксис, который я могу использовать явно вызвать одну или другую функцию «Z» (т. е. «локальную» Z или надстройку «Z»)?

Вопрос 3) Внутри рабочей книги с макросъемкой, когда ячейка рабочего листа вызывает функцию '= Z(), Excel вызывает надстройку версии' Z 'по умолчанию. Если я «разорву ссылку» на надстройку «Z» (панель Excel RIBBON> вкладка DATA> галерея CONNECTIONS> кнопка EDIT LINKS), Excel разбивает все ячейки листа, которые вызывают '= Z()' => '#ИМЯ?'. Есть ли способ заставить Excel разбить ссылку на надстройку «Z» и вместо этого вместо этого вызвать локальную «Z», не разбивая все ячейки листа, которые вызывают «= Z()»?

ответ

1

Ответ 2) Учитывая, что имя файла листа с макросъемкой является «k.xlsm», разрешение имени функции может быть принудительно введено в ячейку листа, префикс функции invocation '= Z()' с именем файла (или полным путь к) рабочей книги с макросъемкой:

='k.xlsm'!Z() 
Смежные вопросы