2017-11-21 10 views
1

ありApplication.Worksheetfunction.RandBetween(0, 1)はあるが、それだけで全体の数を返します:0または1、Iは、ワークシート関数Rand()のと同等であるどのような0と1エクセルVBAランダム関数

間の全体ではないnumberrがを必要としながら?

enter image description here

答えて

1

ワークシート関数は=RAND(0,10000)/10000でなければなりません。このように小数点以下の桁数を調整することができます。

VBAの同等機能は、この機能のように見えます。引数を使用して桁数を決定します。

Function RandomNumber(ByVal Digits As Integer) As Double 

    Dim Fun As Double 

    Randomize 
    Fun = Rnd 
    RandomNumber = Round(Fun, Digits) 
End Function 
0

この

Sub rndNumber() 
     Dim rNum As Double 

      Randomize 
      rNum = Format(Rnd(1), "#0.00") 
    End Sub 

チェックrandomise機能

0

Rnd()は式RAND()のVBA同等でみてください。

使用例:私はかなり長い間前にこの機能を書かれていると私は乱数を必要とする場合、私は通常、簡単にこの方法でそれを生成することができます

Dim rand1 As Double 
'Initialize the random number generator. 
Randomize 
rand1 = Rnd() 
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 
+0

十分に公正である - なぜそれが分を表示したのかわからない – Tom