2013-08-01 92 views
2
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人知道这个问题海峡增加了额外的空间

+0

修剪避免任何标题/结束空白空间相关问题(con = Trim(Str(i)))。我总是在处理字符串时使用它。你的问题在下面得到解答,这只是一个通用的建议:) – varocarbas

回答

5

从帮助页面Str()

当数转换为字符串,领先的空间总是 保留为数字的符号如果数字是正数,则返回的 字符串包含前导空格并且隐含加号

2

Str()为标志留下空间。

由于Excel有隐式转换,你可以使用rg = "B" & i并获得一系列你想要

1

使用format()函数...

con = format(i) 

rg = "B" & con 
MsgBox (rg) 
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 
7

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

+1

+1,在各种建议中,这是最直接的。 –