(VBA) Квадратные равенства — не определено подразделение или функция

#vba #excel

#vba #excel

Вопрос:

Я сталкиваюсь с некоторыми проблемами с моим тестом упражнений в uni, но после редактирования некоторого кода кажется, что там что-то не так.

 Public Function Uzd(x) As String
    If x = 1 Or x = 2 Then
        Uzd = (2 * x   3) / sqrt(x ^ 2   3 * x   2)
    Else
        Uzd = "Incorrect data"
    End If

End Function
  

После запуска кода я получаю — не определено Sub или функция

Комментарии:

1. sqrt должно быть Sqr .

2. Кажется, вы путаете функцию sqrt C с функцией sqr VBA.

3. Общедоступный sub Uzd(x как целое число) как целое число, если x = 1 или x = 2, тогда Uzd = (2 * x 3) / sqrt(x ^ 2 3 * x 2) Иначе сообщение «Неправильные данные» Заканчивается, если заканчивается sub

4. @Ary Sub процедура не может возвращать значение, поэтому его не может быть As Integer . Кроме того, вы все еще используете несуществующую sqrt функцию, которая является точной проблемой OP здесь, и вы вводите проблемы с презентацией, заставляя функцию OP вызывать a MsgBox , что делает невозможным написание модульных тестов для функции.

5. Извините, я не смог отредактировать свой комментарий.

Ответ №1:

Функция, которую вы пытаетесь использовать, находится в библиотеке VBA типов, в Math модуле:

Обозреватель объектов

Вы можете избежать таких опечаток, используя IntelliSense и полностью определяя функции глобальной области, которые вы используете:

 Uzd = (2 * x   3) / Math.Sqr(x ^ 2   3 * x   2)
  

IntelliSense