Когда я пытаюсь использовать функцию VBA, которую я определил в электронной таблице Excel, я получаю «Это недопустимая функция» - PullRequest
5 голосов
/ 21 мая 2009

Я определил функцию в VBA следующим образом

Public Function Distance(X, Y) as Double

Затем в ячейке я пытаюсь использовать функцию. Я набираю «@Dis» и получаю выпадающее меню, выбираю функцию, а затем вводю параметры, заканчивающиеся @Distance (A1, A2) в ячейке.

Когда я нажимаю Enter, я получаю сообщение об ошибке «Эта функция недействительна».

Я включил макросы по всей системе, попытался сохранить их как старый формат и как формат книги с макросами, но безрезультатно.

Что не так с моим использованием этой функции?

Ответы [ 3 ]

6 голосов
/ 21 мая 2009

Вам также необходимо убедиться, что код VBA для вашей функции находится в модуле , а не в области кода рабочего листа.

6 голосов
/ 21 мая 2009

Попробуйте использовать:

=Distance(A1, A2)

Вместо

@Distance(A1, A2)

Я никогда не видел @ как правильный символ для вызова функции в Excel.

Я попробовал следующее в Excel, и оно работает как шарм:

В модуле 1:

Public Function Distance(X as Double, Y as Double) as Double
    Distance = 10
End Function

В клетке:

=Distance(A1, A2)

Который дает результат:

10

как и ожидалось.

3 голосов
/ 26 сентября 2014

Не используйте зарезервированные слова в качестве имен ваших функций. Я попробовал одно имя Parse (), и оно отбросило его назад, пока я не переименовал его в ParseString ().

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