String VBA for Excel中的Str函数向字符串中添加一个字符

String VBA for Excel中的Str函数向字符串中添加一个字符,string,casting,excel,integer,vba,String,Casting,Excel,Integer,Vba,我正在使用str()函数将整数转换为字符串 但是,我注意到str()函数会向字符串返回一个额外的字符 例如,MsgBox(Len(str(1))将返回2 附加的额外字符是什么?最简单的方法: MsgBox(Asc(Right(Str(1),1))) 从Excel 2010帮助: 当数字转换为字符串时,总是为数字的符号保留一个前导空格。如果数字为正数,则返回的字符串包含一个前导空格,并隐含加号 果然,此语句在调试窗口中返回True: ? left(str(1),1) = " " 正如回答中指出

我正在使用str()函数将整数转换为字符串

但是,我注意到str()函数会向字符串返回一个额外的字符

例如,
MsgBox(Len(str(1))
将返回2


附加的额外字符是什么?

最简单的方法:

MsgBox(Asc(Right(Str(1),1)))
从Excel 2010帮助:

当数字转换为字符串时,总是为数字的符号保留一个前导空格。如果数字为正数,则返回的字符串包含一个前导空格,并隐含加号

果然,此语句在调试窗口中返回True:

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

正如回答中指出的,您应该使用
format()
函数。

Doug Glancy的引用是正确的,尽管我会添加下一行:使用“格式”功能可以转换要格式化为日期、时间、货币或其他用户定义格式的数值。与Str不同,Format函数不包含数字符号的前导空格。“[My italics]如果您想修剪多余的空格,您可以始终使用此
MsgBox(Len(trim(Str(1)))
使用
Cstr(1)
而不是
Str(1)
。Cstr不添加空格。