5
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 任何人都知道这个问题

4

6 回答 6

15

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

于 2013-08-01T15:52:02.723 回答
6

从帮助页面Str()

将数字转换为字符串时,始终为数字的符号保留前导空格。如果 number 为正数,则返回的字符串包含前导空格并隐含加号。

于 2013-08-01T15:08:14.087 回答
2

使用 format() 函数...

con = format(i)

rg = "B" & con
MsgBox (rg)
于 2013-08-01T15:15:49.827 回答
2

Str()为标志留出空间。

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

于 2013-08-01T15:08:36.540 回答
1

使用 Trim 函数删除前导空格,如下所示:

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
于 2013-08-01T15:19:43.840 回答
0

Excel 根据 int 连接一个字符串。

这是一个说明

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

于 2013-08-01T15:09:15.160 回答