str (1) возвращается с пробелом перед Excel vba - PullRequest
0 голосов
/ 09 декабря 2018

В программе Excel я отлаживал, когда заметил, что строковая функция числа возвращает число, но с пробелом перед ним: str(1) возвращает " 1".

НасколькоЯ знаю, что в интернете по этому поводу ничего особенного нет, поэтому я был бы признателен, если бы знал, является ли это ошибкой или я делаю что-то не так.Существует способ обойти это, если это может помочь:

Mid(Str(1), 2, 1) Итак, для этого нужно взять второй символ " 1", и, если число, например, длиной 5 символов, изменитьчисло в конце до 5, например Mid(Str(11111), 2, 5).

Спасибо за любые отзывы, однако, с обходным путем, нет необходимости на 100%, чтобы ответить на этот вопрос.

Если этопомогает, пользуюсь офисом 365 ...

Ответы [ 2 ]

0 голосов
/ 09 декабря 2018

Первый пробел, предоставленный функцией Str VBA для положительных чисел, используется для выравнивания.

Текст / строки по умолчанию выровнены по левому краю на листе.Поскольку отрицательные числа получают дефис, положительные числа получают пробел для поддержания выравнивания.

Кстати, если вы опустите третий аргумент функции VBA Mid (количество символов), будут возвращены все оставшиеся символы из начальной позиции второго аргумента.Это означает, что Mid(Str(<any number>), 2) всегда будет возвращать полное число, хотя знак любого отрицательного числа будет опущен.Это не работает с функцией MID на листе.

0 голосов
/ 09 декабря 2018

Из справочника VBA:

Когда числа преобразуются в строки, для знака числа всегда резервируется начальный пробел.Если число положительное, возвращаемая строка содержит начальный пробел и подразумевается знак плюс.Используйте функцию «Формат», чтобы преобразовать числовые значения, которые вы хотите отформатировать, как даты, время или валюту, или в другие пользовательские форматы.В отличие от Str, функция Format не содержит начального пробела для знака числа.

Пожалуйста, см .:

Функция Str

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