Share via


Función Rnd

Devuelve un valor Single que contiene un número pseudoalea aleatorio.

Sintaxis

Rnd [ (Number) ]

El argumentoNumber opcional es una expresión numérica Single o cualquier expresión numérica válida.

Valores devueltos

Si El número es Rnd genera
Menor que cero El mismo número cada vez, usando Number como inicialización.
Mayor que cero Número siguiente de la secuencia pseudoalea aleatoria.
Igual que cero El último número generado.
No se proporciona. Número siguiente de la secuencia pseudoalea aleatoria.

Comentarios

La función Rnd devuelve un valor menor que 1 pero mayor o igual que cero.

El valor de Number determina cómo Rnd genera un número pseudoalea aleatorio:

  • Para una inicialización dada, se genera la misma secuencia de números porque cada llamada sucesiva a la función Rnd usa el número anterior como inicialización para el siguiente número de la secuencia.

  • Antes de llamar a Rnd, use la instrucción Randomize sin un argumento para inicializar el generador de números aleatorios con una inicialización basada en el temporizador del sistema.

Para generar enteros aleatorios en un intervalo dado, use esta fórmula:

Int((upperbound - lowerbound + 1) * Rnd + lowerbound)

Aquí, upperbound (límite superior) es el número más alto del intervalo y lowerbound (límite inferior) es el número más bajo del intervalo.

Nota:

[!NOTA] Para repetir secuencias de números aleatorios, llame a Rnd con un argumento negativo inmediatamente antes de usar Randomize con un argumento numérico. El uso de Randomize con el mismo valor para Number no repite la secuencia anterior.

Ejemplo:

En este ejemplo se usa la función Rnd para generar un valor entero aleatorio del 1 al 6.

Dim MyValue As Integer
MyValue = Int((6 * Rnd) + 1)    ' Generate random value between 1 and 6.

Vea también

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.