有一个Application.Worksheetfunction.RandBetween(0, 1)
,但它只返回一个整数:0或1,而我需要一个介于0和1之间的整数。
工作表函数Rand()
的等价物是什么?
答案 0 :(得分:1)
工作表函数应为Function RandomNumber(ByVal Digits As Integer) As Double
Dim Fun As Double
Randomize
Fun = Rnd
RandomNumber = Round(Fun, Digits)
End Function
。您可以通过这种方式调整小数位数。
VBA等价物可能看起来像这个功能。通过参数确定位数。
var vm = this;
vm.valueLength = "1000";
答案 1 :(得分:1)
我很久以前写过这个函数,如果我需要一个随机数,我通常可以通过这种方式轻松生成它。
请注意,您需要Randomize-Statement来确保每次使用该函数时随机数创建一组新的随机数。
Private Function random(minval As Integer, maxval As Integer, _
Optional decimalaccuracy As Integer = 10000) As Double
Randomize
random = (maxval - minval + 1) * Rnd + minval
If decimalaccuracy <> 10000 Then random = _
Application.WorksheetFunction.Round(random, decimalaccuracy)
End Function
答案 2 :(得分:0)
试试这个
Sub rndNumber()
Dim rNum As Double
Randomize
rNum = Format(Rnd(1), "#0.00")
End Sub
检查randomise功能
答案 3 :(得分:0)
Rnd()
是公式RAND()
的VBA等价物。
示例用法:
Dim rand1 As Double
'Initialize the random number generator.
Randomize
rand1 = Rnd()