VBA excel перегружает еще одну надстройку - PullRequest
1 голос
/ 22 января 2010

Вопрос! У меня есть надстройка, которую мы создали на работе, например, foo.xla, и она имеет функцию foo_sub (arg1).

Теперь я хочу улучшить поведение foo_sub (arg1), но без изменения исходного кода надстройки, поскольку, как только они обновляют его, я должен перенести свой код из старой надстройки в более новую.

Есть ли способ, которым я мог бы написать foo_sub (arg1) в другой надстройке, скажем, fee.xla, чтобы каждый раз, когда я вызываю foo_sub из рабочей таблицы, вызывается та, которую вызывает get?

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

Ответы [ 2 ]

0 голосов
/ 22 января 2010

У меня было много подобных проблем при попытке перегрузить конструктор в VBA в Excel .

Однако я думаю, что ваша проблема немного другая. Вы не обязательно пытаетесь перегрузить функцию, предоставляя отдельный метод с тем же именем и другими параметрами; вы пытаетесь добавить метод с точно таким же именем, типом возвращаемого значения и параметрами и найти способ, чтобы Excel вызывал вашу функцию вместо функции надстройки.

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

Вы можете создать функцию-оболочку my_foo_sub(arg1), в которой есть собственный код. Затем, если вам нужно переключиться на новый foo_sub(arg1) при обновлении файла .xla, вы можете просто закомментировать свой пользовательский код и добавить вызов к foo_sub(arg1). Это далеко от идеала, но это может помочь.

0 голосов
/ 22 января 2010
...