Excel VBA UDF Надстройка функции # Ошибка имени - PullRequest
2 голосов
/ 12 декабря 2011

У меня есть UDF, который я написал и вставил в надстройку. Я поместил его туда (вместе с библиотекой других), чтобы я мог изменять функции и просто развертывать обновленную надстройку, тем самым устраняя необходимость изменять сотни рабочих книг, которые вызывают подпрограммы / функции, в случае необходимости их изменения. Все это делается в Office 2007.

Это работало хорошо до недавнего времени, когда пользователи начали переходить на Windows 7. Теперь только в Windows 7 (с XP все еще в порядке) в ячейках появляются ошибки #Name. Это происходит при определенных условиях (проблема только для сценария D ниже). Короче говоря, у меня есть две рабочие книги, каждая из которых вызывает, давайте назовем это «FunctionX», поэтому, скажем, ячейка A1 каждой имеет «= FunctionX (parmA, parmB)»:

Scenairo A - Если я открою любую книгу отдельно (Все хорошо)

Сценарий B - я открываю обе книги одновременно (все хорошо)

Сценарий C - я открываю обе книги по отдельности, одну за другой, в разных случаях (все хорошо)

Сценарий D - я открываю одну книгу, затем вторую, в том же экземпляре Excel (# Имя ошибки в ячейках первой книги, вызывающей FunctionX)

Я понимаю, что обходной путь - это работать только через Scenarios AC, однако я продолжаю получать жалобы пользователей на D. Если они обращаются к любому вызову FunctionX в ячейках, нарушающих #Name, и нажимают enter, #Names исчезают, но программный принудительный пересчет не делает этого (моя первоначальная попытка лейкопластыря). Является ли мое единственное средство для написания процедуры, которая перебирает все открытые рабочие книги, входит в ячейку с моей функцией, заставляя вводить в действие код на основе того, что делает пользователь, или я что-то упускаю? Спасибо ... любой / все советы приветствуются.

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