Str增加额外的空间
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”而不是“B 4任何人都知道的问题
使用Cstr(i)而不是Str(i) – Cstr不会添加空格
从Str()
的帮助页面
将数字转换为string时,总是为数字的符号预留前导空格。 如果数字是正数,则返回的string包含前导空格,隐含加号。
Str()
留下符号的空间。
由于Excel具有隐式转换,因此可以使用rg = "B" & i
并获取所需的范围
使用format()函数…
con = format(i) rg = "B" & con MsgBox (rg)
使用修剪function删除前导空间,如下所示:
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