вызов функции Excel из листа Excel - PullRequest
6 голосов
/ 08 декабря 2010

У меня есть набор пользовательских функций vba, которые находятся в модуле Excel, которые затем вызываются из таблицы Excel ... на данный момент все работает нормально.

Меня попросили переместить vba из модуля на кодовую страницу рабочего листа. Когда я сделал это, я обнаружил, что не могу вызвать ни одну из функций из ячеек на листе ... имена просто не отображаются как существующие. Есть ли способ вызова функций листа из ячейки Excel? Кроме того, есть ли проблема с вызовом функции рабочего листа из определенной пользователем функции в другом модуле или коде рабочего листа?


EDIT:

Я обнаружил, что если я позвоню по имени листа.функции, он выдаст сообщение об ошибке, которое включает в себя «Имя конфликтует со встроенным именем Excel или именем другого объекта в книге» ... где, если я использовать sheetname.anythingelse, он просто разрешается в #NAME?

Означает ли это, что функции листа Excel нельзя вызывать из листа?

Ответы [ 2 ]

7 голосов
/ 09 декабря 2010

Нет.Функции в объекте рабочего листа нельзя вызывать с листа как пользовательские функции.

Объект Worksheet предназначен для реагирования на события, происходящие на рабочем листе.Вы не можете поместить пользовательские функции там.Пользовательские функции должны жить в модуле.

Если ваша пользовательская функция действительно живет в модуле, у вас не возникнет проблем с ее вызовом из кода где-либо еще ... в том числе из кода рабочей таблицы-behind».

4 голосов
/ 08 декабря 2010

Вы должны поместить код в стандартный модуль. Проверьте эту ссылку.

http://www.cpearson.com/excel/writingfunctionsinvba.aspx

...