Столкновение имени функции XLL и vba приводит к постоянному #NAME?ошибка - PullRequest
3 голосов
/ 31 марта 2011

в Excel 2003 sp2

  • XLL определяет функцию xll_function Если я это называю, это работает нормально.

  • Определена функция VBA с тем же именем: она имеет приоритет над функцией xll_xll.

  • функция VBA удалена, #NAME? появляется и остается навсегда. Не помогает сохранить рабочую книгу в другой версии Excel или в безопасном режиме.

Excel все еще помнит, как смотреть на VBA, хотя функция VBA исчезла. Любое предложение о том, что сделать, чтобы решить это?

Ответы [ 3 ]

2 голосов
/ 01 апреля 2011

Попробуйте определить определенное имя так же, как функцию, затем удалите его

1 голос
/ 10 мая 2012

В Excel очень странное поведение при связывании UDF, содержащегося в VBA, XLA [M] или XLL.

В целом, при редактировании рабочей книги пользовательский интерфейс VBA получает приоритет над тем, который есть в XLA.[M] / XLL, и это тот, который связан и сохранен в рабочей книге.

Однако, когда вы открываете рабочую книгу, Excel сначала ищет UDF в XLA [M] / XLL, а затем вVBA раздел той же книги.Вероятно, это связано с тем, что UBA UBA еще не известна в Excel, а та, что в XLA [M] / XLL, уже есть, и рабочая книга будет постоянно связана с последней.

Возможно, вы не пойметекоторый вызывается, если вы не переместите рабочую книгу на ПК, где XLA [M] / XLL недоступен.В этот момент наиболее вероятным результатом является «#NAME» или «#VALUE» в вашей ячейке.

Я рекомендую избегать неоднозначности, НИКОГДА не используя ТОГО ЖЕ имя для UDF в РАЗНЫХ провайдерах.

0 голосов
/ 01 апреля 2011

В конце концов, я начал со старой таблицы и перенес свой модуль и лист в нее ... это был единственный способ найти

...