Excel vba随机功能

时间:2017-11-21 09:18:43

标签: excel vba excel-vba

有一个Application.Worksheetfunction.RandBetween(0, 1),但它只返回一个整数:0或1,而我需要一个介于0和1之间的整数。

工作表函数Rand()的等价物是什么?

enter image description here

4 个答案:

答案 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()