Excel VBA添加空格formsStr()

我在Excel 2013 / VBA中有以下snipet。 代码是一个非常简单的随机单元/行生成器,然后在文本框中显示输出。 在Excel / Vba下面的代码片段中,在A和随机数字之间添加一个空格,例如:

“一个14”

那里的预期输出是

“A14”

我已经得到解决这个使用Replace()函数,但是我想知道为什么这种行为发生我第一个地方。 这是否与Str()函数?

 Private Sub btnRetrieve_Click() Dim sh As Worksheet Set sh = ThisWorkbook.Sheets("CenRaw") Dim k As Long Dim selectedRow As String k = sh.Range("A2", sh.Range("A2").End(xlDown)).Rows.Count aRandNum = Int((k - 2) * Rnd + 2) selectedRow = Replace("A" & Str(aRandNum), " ", "") tbOne.Text = selectedRow selectedRow = vbNullString End Sub 

请参阅MSDN上的这篇文章:

领先的空间

更简单的方法是使用: LTrim$(aRandNum)

VBA已经有了一个函数来转换成不包含前导空格的string:

 tbOne.Text = "A" & CStr(aRandNum) 

对于其他数据types也有类似的function:

  • CBool​​() – >布尔值
  • CInt() – >整数
  • CLng() – > Long
  • CDbl() – > Double
  • CDate() – >date
  • CDec() – >十进制

仅举几个例子

虽然如果您使用的是文本框,但被分配的值是隐式的string,因此无论如何数字值都会显示为string。