У меня было много подобных проблем при попытке перегрузить конструктор в VBA в Excel .
Однако я думаю, что ваша проблема немного другая. Вы не обязательно пытаетесь перегрузить функцию, предоставляя отдельный метод с тем же именем и другими параметрами; вы пытаетесь добавить метод с точно таким же именем, типом возвращаемого значения и параметрами и найти способ, чтобы Excel вызывал вашу функцию вместо функции надстройки.
Я не уверен, но я не думаю, что это возможно в Excel VBA. Если вы попытаетесь вызвать функцию, которая определена в нескольких местах, она запутается и скажет вам, что не знает, какую из них вызывать.
Вы можете создать функцию-оболочку my_foo_sub(arg1)
, в которой есть собственный код. Затем, если вам нужно переключиться на новый foo_sub(arg1)
при обновлении файла .xla
, вы можете просто закомментировать свой пользовательский код и добавить вызов к foo_sub(arg1)
. Это далеко от идеала, но это может помочь.