2012-04-04 2 views
4

Я преобразования целого числа в строку, используя НТР функции()Функция Str в VBA для Excel добавляет символ в строку

Однако я заметил, что функция Обл() возвращает дополнительный символ в строке ,

Например, MsgBox(Len(str(1))) вернется 2.

Что дополнительный характер, добавленный?

+2

Цитата Дага Гленси верна, хотя я бы добавил следующую строку: «Используйте функцию« Формат »для преобразования числовых значений, которые вы хотите отформатировать как даты, время или валюту, или в других пользовательских форматах. _В отличие от Str, функция Format не содержит ведущее пространство для знака number_. " [Мой курсив] –

+1

И если вы хотите обрезать это дополнительное пустое пространство, вы всегда можете использовать этот 'MsgBox (Len (Trim (Str (1)))) –

+0

Хорошие очки, оба. –

ответ

0

Самый простой способ узнать:

MsgBox(Asc(Right(Str(1),1))) 
10

С Excel 2010 поможет:

«Когда числа преобразуются в строки, ведущий пространство всегда резервируется для знака числа Если число положительное. , возвращаемая строка содержит ведущее пространство, а знак плюса подразумевается ».

И достаточно уверен, что это оператор возвращает Правда в окне отладки:

? left(str(1),1) = " " 
+0

+ 1 Да, вы совершенно правы в этом :) –

0

Как указано в this ответ вы должны использовать функцию format().

Смежные вопросы