VBA Random Number

This tutorial will demonstrate how to work with random numbers in VBA.

RND Function

The RND Function generates a number that is between 0 and 1. The syntax of the RND Function is:

Rnd([Number]) where:

  • Number (Optional) – This is optional and if <0, the function returns the same random number on each call using [Number] as the seed, if =0, the function returns the most recent random number, if >0 the function returns the next generated random number. If blank the default >0, is used.
Sub RndNum()
    MsgBox Rnd()
End Sub

Generating a Random Number in VBA

In order to generate a random number between two values, you have to use the RND Function in combination with the INT Function  (Integer Function) using the following general formula:

  • Int(lowerbound + Rnd * ( upperbound – lowerbound + 1 ) )

So, in order to generate a random number between 2 and 30, you would use the following code:

Sub GeneratingARandomNumber()

Dim randomNumber As Integer

randomNumber = Int(2 + Rnd * (30 - 2 + 1))
Debug.Print randomNumber

End Sub