Introducción al número aleatorio de VBA

En Excel tenemos una función llamada RAND que se usa para generar números aleatorios. Entonces, como tenemos la función RND en VBA, que se utiliza para generar números aleatorios. La función RND genera números que son mayores que 0 pero menores que 1.

Sintaxis de números aleatorios en Excel VBA

La sintaxis para la función de número aleatorio excel VBA es la siguiente:

Podemos ver en la sintaxis de la función RND anterior, solo podemos usar un solo número como entrada.

Damos la entrada en la función RND de las siguientes 3 formas;

  1. Si le damos un número <0, generará el mismo número cada vez que ejecutemos el código.
  2. Si damos un número como 0, aparecerá el número más reciente que se generó.
  3. Si damos un número> 0, seguirá generando diferentes números aleatorios. Pero será en secuencia.

¿Cómo utilizar la función de número aleatorio de Excel?

Veamos los ejemplos de Número aleatorio en Excel VBA.

Puede descargar esta plantilla de Excel de números aleatorios de VBA aquí - Plantilla de Excel de números aleatorios de VBA

Ejemplo # 1 - Número aleatorio de VBA

Paso 1: Esto podemos aplicarlo directamente a VBA. Para esto, vaya a la ventana VBA y abra un módulo desde el menú Insertar como se muestra a continuación.

Paso 2: Una vez que lo hagamos, obtendremos una ventana de Módulo en VBA. En ese módulo, escriba la subcategoría del número aleatorio de VBA en el mismo nombre o en cualquier nombre según su elección.

Código:

 Sub RandomNumber () End Sub 

Paso 3: Ahora elija una palabra o alfabeto y defínalo como una variable y asígnele Doble . Aquí estamos considerando la variable Dim A y se la damos a Double . Seleccionar doble en lugar de Entero será útil porque veremos valores decimales que están entre 0 y 1.

Código:

 Sub RandomNumber () Dim A como Double End Sub 

Paso 4: Ahora usaremos la variable A que definimos anteriormente y le asignaremos una función Rnd para generar números aleatorios como se muestra a continuación.

Código:

 Sub RandomNumber () Dim A As Double A = Rnd (End Sub 

Paso 5: Como podemos ver en la captura de pantalla anterior, la función RND tiene la sintaxis como número y será un número de un solo dígito. Aquí veremos cómo dar un número menor que 0 generará qué. Entonces, entre paréntesis de la función RND, inserte -1, que es el número más reciente menor que 0.

Código:

 Sub RandomNumber () Dim A As Double A = Rnd (-1) End Sub 

Paso 6: Finalmente, para obtener el resultado, necesitamos la referencia de la celda o un cuadro de mensaje donde reflejará el número aleatorio. Inserte el comando Msgbox del cuadro de mensaje y asigne la variable definida aquí.

Código:

 Sub RandomNumber () Dim A As Double A = Rnd (-1) MsgBox A End Sub 

Paso 7: Ahora podemos compilar el código y ejecutarlo haciendo clic en el botón de reproducción debajo de la barra de menú. Veremos el primer número aleatorio generado que es menor que 0, que es 0.2240070104599 como se muestra a continuación.

Si volvemos a ejecutar el código, seguirá generando el mismo código una y otra vez.

Ejemplo # 2 - Número aleatorio de VBA

Hemos visto cómo generar números aleatorios que son menores que 0. Hay otra forma de obtener números aleatorios. En este ejemplo, generaremos el número aleatorio dando 0 como entrada a la función RND .

Para esto, usaremos el mismo código usado en el ejemplo-1.

Paso 1: ahora en lugar de -1, que está entre los corchetes de la función RND, coloque 0.

Código:

 Sub RandomNumber () Dim A As Double A = Rnd (0) MsgBox A End Sub 

Paso 2: podemos compilar el código, si es necesario, o ejecutarlo directamente presionando la tecla F5 (tecla de acceso directo) para ejecutar el código. Podemos ver que la función RND ha generado el mismo número que se generó cuando proporcionamos una entrada menor que 0. Lo que significa que si damos 0 como una función RND de entrada, generará el número generado previamente.

Y si volvemos a ejecutar el código, seguirá dando el mismo número aleatorio.

Ejemplo # 3 - Número aleatorio de VBA

En este ejemplo, veremos qué sucederá si le damos un valor mayor que 0. Podemos elegir escribir un nuevo código o podemos hacer los cambios en el código que hemos escrito anteriormente. Consideremos el código que hemos visto anteriormente.

Paso 1: Como necesitamos probar un número mayor que 0, en la función RND use el blanco y agregue +1 para valores mayores que 1 como se muestra a continuación.

Código:

 Sub RandomNumber () Dim A As Double A = 1 + Rnd () MsgBox A End Sub 

Paso 2: compile el código si lo desea y luego ejecútelo. Veremos que el número aleatorio generado es diferente del número que se generó anteriormente. A continuación se muestra la captura de pantalla, que muestra que el número aleatorio está en la fracción de 1.035 … .41 . Que es mayor que 0.

Si ejecutamos el mismo código nuevamente, seguiremos obteniendo diferentes números aleatorios. Así que obtuvimos justo después de ejecutar el código nuevamente. Esta vez, los números aleatorios que obtuvimos son el valor de doble infracción en comparación con el número aleatorio generado anteriormente.

Ventajas del número aleatorio de VBA

  1. Parece difícil pero es fácil de aplicar.
  2. Esto es bastante útil cuando estamos trabajando en generar números de tickets de forma aleatoria.
  3. El proceso que se muestra en el ejemplo 3 se puede implementar de muchas maneras diferentes.

Cosas para recordar

  • Esto se puede implementar a través de la función MS Excel también con el nombre de función RAND.
  • Primero probamos el ejemplo-2 antes de ejecutar el código del ejemplo-2. Porque en realidad mostrará cuál fue el número generado anteriormente.
  • Probar la función RND manteniendo los corchetes en blanco también nos dará un número aleatorio.
  • Si asignamos la variable como Entero, obtendremos solo números enteros que serán los mismos que si fueran 0 o 1.
  • Si utilizamos números de dos dígitos como entrada en la función RND, también generará el número aleatorio.

Artículos recomendados

Esta es una guía para el número aleatorio de VBA. Aquí discutimos cómo generar un número aleatorio en VBA Excel usando la función RND junto con ejemplos prácticos y una plantilla de Excel descargable. También puede consultar nuestros otros artículos sugeridos:

  1. VBA InStr explicado con ejemplos
  2. Tipo de datos enteros de VBA
  3. ¿Cómo seleccionar la celda usando el código VBA?
  4. Transponer un rango en VBA

Categoría: