【发布时间】:2014-04-15 13:49:52
【问题描述】:
我正在制作一个基本循环如下:
Sub IntegerTestforSuffixFinder()
Dim i As Double
i = 1
MsgBox (i)
Do While i < 100
i = i + 1
If vbOK Then
MsgBox (i)
Else: End
End If
Loop
End Sub
这很好用......但我真的需要它来解决我要解决的实际问题是识别 i = 001。在这种情况下,零是重要的占位符,但它不断纠正我i = 1。有没有办法阻止这种情况?
非常感谢!
【问题讨论】:
-
按照规定的格式将 integer 转换为 string。 整数没有前导零。
-
数字就是数字;前导零完全没有意义。
-
我不使用 VBA,但它看起来像 - Excel,无论如何 - 提供了一个 Format,可能可以使用类似
Format(CStr(i), "000") -
哦,我太傻了。好的,现在它可以显示“001”,然后继续到 2、3、4、5。有没有办法设置它来像整数而不是字符串一样添加它......?我知道它将它识别为字符而不是整数,这就是为什么它不会进行数学运算,但可以用另一种方式完成吗?
-
@meer2kat
i变量应该总是代表一个整数,因此它总是“像整数一样相加”;只是strOfI = ToStringWithSpecificFormat(i)应该是一个字符串。然后MsgBox(strOfI)或MsgBox(ToStringWithSpecificFormat(i))- 也许没有为both 消息框添加转换?