2013-08-01 93 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,在各種建議中,這是最直接的。 –