#NUM!ошибка в пользовательской функции - PullRequest
0 голосов
/ 22 мая 2018

Я создал новую функцию с именем length, которая проверяет количество символов и показывает «результат ошибки», если число больше 5. Однако результат функции равен #NUM!Если тест для 5 символов или менее, отображается результат.

Что не так?

Function length (number as integer)
    If ( Len (CStr (number)) > 5 ) then
        length = "error"
    End if
    If ( Len (Cstr (number)) <6) then
        length = "the count is true"
    End if
End Function

1 Ответ

0 голосов
/ 22 мая 2018

В силу характера типов данных это произойдет.Если быть более точным, ваша функция будет работать для значений до 32 767 включительно.Выше этого он вернет #NUM, поскольку ваш number больше не может поместиться внутри целого числа, которым вы его устанавливаете.

Если вы определите свой number как Long тип данных, он будет обрабатывать значения до,и в том числе 2 147 483 647

1007 * Чтобы получить более подробное объяснение различий между Integer и Long, вы можете прочитать ответ от RubberDuck на этот пост: Зачем использовать Integer вместо Long?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...