#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 вызывать aMsgBox
, что делает невозможным написание модульных тестов для функции.5. Извините, я не смог отредактировать свой комментарий.
Ответ №1:
Функция, которую вы пытаетесь использовать, находится в библиотеке VBA
типов, в Math
модуле:
Вы можете избежать таких опечаток, используя IntelliSense и полностью определяя функции глобальной области, которые вы используете:
Uzd = (2 * x 3) / Math.Sqr(x ^ 2 3 * x 2)