Excel VBA Aleatorizar

VBA Randomize es la función que se utiliza para crear la función de números aleatorios que es RND. Todos sabemos que VBA RND se utiliza para crear los números aleatorios que se utilizan principalmente para la facturación, el aumento de números de tickets y muchos para aplicaciones están allí. Aquí, VBA Randomize se usa para cambiar el valor semilla que alimentamos para la función RND. Para una mejor comprensión, estamos utilizando la función RND para obtener los números aleatorios y luego la función Aleatorizar con RND, que dará más variedad de números aleatorios. A medida que cambia en el valor de entrada inicial por el cual también se cambia la salida. Lo que significa que generará los números según la entrada inicial que se proporciona en la función RND y el número generado estará en el mismo rango.

Lo principal de VBA Randomize es que no tiene ninguna sintaxis. Solo necesitamos usarlo junto con la función RND que tiene la sintaxis para aplicar.

¿Cómo aleatorizar un número en Excel VBA?

A continuación se muestran los diferentes ejemplos para aleatorizar un número en Excel usando la función VBA Rnd.

Puede descargar esta plantilla de VBA Randomize Excel aquí - Plantilla de VBA Randomize Excel

Excel VBA Randomize - Ejemplo # 1

Es muy fácil crear números aleatorios personalizados mediante VBA Randomize. Para esto, siga los pasos a continuación:

Paso 1: vaya a la ventana VBA, en la pestaña del menú Insertar, seleccione Módulo como se muestra a continuación.

Paso 2: Ahora escriba la subcategoría de VBA Randomize o podemos usar cualquier nombre para definir el código de VBA.

Código:

 Sub VBA_Randomize () End Sub 

Paso 3: Ahora define una variable. Aquí, hemos considerado la variable RNum como tipo de datos Double. La lógica detrás del uso de Double es que obtendremos cambios menores en los números aleatorios generados. Doble nos ayudará a ver los números en decimales.

Código:

 Sub VBA_Randomize () Dim RNum como Double End Sub 

Paso 4: Ahora asigne la función VBA RND a la variable definida RNum .

Código:

 Sub VBA_Randomize () Dim RNum As Double RNum = Rnd End Sub 

Paso 5: Ahora para ver la generación de números aleatorios, usaremos Debug.Print, que se usa para imprimir el mensaje.

Código:

 Sub VBA_Randomize () Dim RNum As Double RNum = Rnd Debug.Print RNum End Sub 

Paso 6: para ver el valor o la generación de números, abra la ventana Inmediato de la lista del menú Ver. O podemos usar una tecla de atajo como Ctrl + G para obtener esta ventana.

Paso 7: Ahora compile el código y ejecútelo haciendo clic en el botón Reproducir ubicado debajo de la barra de menú. Veremos el primer número aleatorio en la ventana inmediata como se muestra a continuación.

Y si ejecutamos el código, una y otra vez, varias veces, entonces veríamos algunos números aleatorios más.

Paso 8: Ahora, si aplicamos Randomize antes de la función RND, cambiará la entrada inicial que estaba obteniendo la función RND.

Código:

 Sub VBA_Randomize () Dim RNum As Double Randomize RNum = Rnd Debug.Print RNum End Sub 

Paso 9: Ejecute nuevamente el código varias veces para ver qué números se generan.

Así es como funciona la función Randomize en VBA si se usa con la función RND .

Veamos más experimentos con la misma codificación. Ahora usaremos la función CInt con RND que se usa para la conversión de tipo de datos. Lo que significa que convertirá el número aleatorio generado como Doble en enteros.

Código:

 Sub VBA_Randomize1 () Dim RNum As Double RNum = CInt (Rnd) Debug.Print RNum End Sub 

Ahora vuelve a ejecutar el código. Veremos, ahora los números aleatorios se generan como enteros. Pero los valores están en el rango de 0 y 1.

Ya hemos visto, si seguimos usando el Doble, entonces los valores estaban entre 0 y 1. Esto se debe a que usamos Aleatorizar junto con la función RND. Ahora multipliquemos la función RND con cualquier número. Digamos 20.

Código:

 Sub VBA_Randomize1 () Dim RNum As Double RNum = CInt (Rnd * 20) Debug.Print RNum End Sub 

Ahora vuelve a ejecutar el código.

Ahora la escena ha cambiado. Los valores aleatorios generados son mayores que 0 pero menores que 20.

Excel VBA Randomize - Ejemplo # 2

Hay otra forma de ver cómo funciona VBA Randomize. Aplicaremos alguna fórmula matemática junto con Aleatorizar y veremos cómo aleatorizar ayuda a generar valores aleatorios. Pero en este ejemplo, veremos el resultado en el cuadro de mensaje. Para esto, siga los pasos a continuación:

Paso 1: en un módulo, escriba la subcategoría de VBA Randomize como se muestra a continuación.

Código:

 Sub VBA_Randomize2 () End Sub 

Paso 2: Considere la misma variable que definimos en el último ejemplo pero como Integer.

Código:

 Sub VBA_Randomize2 () Dim RNum As Integer End Sub 

Paso 3: Ahora seleccione la función Aleatorizar aquí antes de comenzar a poner la fórmula matemática.

Código:

 Sub VBA_Randomize2 () Dim RNum como entero Randomize End Sub 

Paso 4: Ahora considere cualquier fórmula matemática como sumar, restar según sus requisitos, como se muestra a continuación.

Código:

 Sub VBA_Randomize2 () Dim RNum As Integer Randomize RNum = Int ((300 - 200 + 1) End Sub 

Paso 5: Ahora use la función RND como se muestra a continuación.

Código:

 Sub VBA_Randomize2 () Dim RNum As Integer Randomize RNum = Int ((300 - 200 + 1) * Rnd + 200) End Sub 

Ha notado que hemos usado la mayor parte de la expresión matemática que generalmente se usa.

Paso 6: Ahora usa Msgbox con una variable definida para ver los números aleatorios generados.

Código:

 Sub VBA_Randomize2 () Dim RNum As Integer Randomize RNum = Int ((300 - 200 + 1) * Rnd + 200) MsgBox RNum End Sub 

Paso 7: ahora ejecuta el código. Obtendremos un número aleatorio como 234. Esto se debe a que el número se multiplica por (300-200 + 1) y luego se agrega con 200. Lo que significa que el número aleatorio es de naturaleza bastante menor y debido a las expresiones matemáticas utilizadas, es llegando como 234.

Y ejecutamos el código nuevamente, nos dará el mensaje como 294 .

Ventajas de Excel VBA Randomize

  • Podemos generar cualquier número aleatorio entre los rangos que queramos.
  • A medida que el rango se vuelve limitado pero aún no hay límite en la generación de números aleatorios.
  • Podemos limitar el rango de generación de números aleatorios que sería mayor que 0.

Cosas para recordar

  • Randomize se puede usar con diferentes funciones también. Pero, usar esto con la función RND da el resultado que necesitamos.
  • Aleatorizar da números aleatorios entre 0 y 1 si se usa solo con RND.
  • Si usamos cualquier otro número o expresión matemática con RND, entonces Randomize se generará, los números aleatorios entre el valor más alto podrían generarse.
  • Una vez hecho esto, guarde el archivo en formato Macro Enable Excel.
  • Randomize se puede usar donde sea necesario generar los números aleatorios, pero entre algunos valores iniciales de rango.

Artículos recomendados

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

  1. Escribir archivo de texto en Excel VBA
  2. Generar números aleatorios en Excel
  3. Declaración de variables de Excel VBA
  4. Excel ceros a la izquierda (ejemplos)

Categoría: