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。