Str增加了额外的空间

时间:2013-08-01 15:05:08

标签: string excel vba

Dim i As Integer

i = Int((8 - 2 + 1) * Rnd + 2)

Dim rg As String
Dim con As String

con = Str(i)

rg = "B" & con
MsgBox (rg)

这返回“B 4”而不是“B4任何人都知道问题

6 个答案:

答案 0 :(得分:13)

使用Cstr(i)而不是Str(i) - Cstr不添加空格

答案 1 :(得分:5)

Str()

的“帮助”页面
  

当数字转换为字符串时,始终是前导空格   保留给号码的标志。如果数字为正数,则返回   string包含一个前导空格,暗示加号。

答案 2 :(得分:2)

Str()为标志留出空间。

由于Excel具有隐式转换,您可以使用rg = "B" & i并获得所需的范围

答案 3 :(得分:2)

使用format()函数...

con = format(i)

rg = "B" & con
MsgBox (rg)

答案 4 :(得分:0)

Excel根据int。

连接字符串

这是一个描述

https://stackoverflow.com/a/10004244/1504882

答案 5 :(得分:0)

使用修剪功能删除前导空格,如下所示:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim i As Integer

i = Int((8 - 2 + 1) * Rnd + 2)

Dim rg As String
Dim con As String

con = Str(i)

rg = "B" & Trim(con)
MsgBox (rg)
End Sub