我该如何在Excel宏中将字符串转换为长整型? CLng会给我类型不匹配的错误。
Dim wStr As String
Dim w As Long
wStr = "=RAND() * 0.3 + 0.35"
w = CLng(wStr)
CDbl
期望一个数字或者看起来像数字的字符串。字符串"=RAND() * 0.3 + 0.35"
本身并不像一个数字,尽管它将会被计算为一个数字。Dim w as Long
w = Rnd() * 0.3 + 0.35
Dim w as Long
w = Application.Evaluate("=RAND() * 0.3 + 0.35")
关于这个公式本身,为什么要使用这种构造方式呢?它将在范围[0.35, 0.65)内返回一个单精度浮点数,当舍入为长整型时,以50%的概率返回0或1。
为什么不使用:
w = Rnd()
或者
w = Application.Evaluate("=RAND()")
或者
w = Application.WorksheetFunction.RandBetween(0, 1)
尝试使用以下公式计算w。
w = CLng(Evaluate(wStr))
w = CLng(Rnd() * 0.3 + 0.35)