¿cómo generar números aleatorios en vba?

En VBA, puede utilizar diferentes formas de generar un número aleatorio en Excel y, en este artículo, las veremos todas una por una.

Función RND

Para generar un número aleatorio, en VBA, existe una función llamada RND . Esta función significa aleatoria y cuando usa esta función en el código, devuelve un número aleatorio entre 0 y 1. En RND no necesita especificar ningún argumento.

 Range("A1") = Rnd()

El código anterior lo usa para obtener un número aleatorio en A1 y devolvió 0.705547521.

generar números aleatorios en vba

Pero cuando lo usas para un rango completo, devuelve el mismo número aleatorio en todo el rango y eso lo hace nulo para usarlo para generar números aleatorios más de una vez.

devolver-el-mismo-número-aleatorio

Ahora bien, aquí no tiene sentido usarlo, ¿verdad? Pero hay una solución que puedes usar, FOR NEXT LOOP .

usar para el siguiente bucle

En el código anterior tienes un bucle que recorre 10 celdas (una por una) comenzando desde la celda seleccionada y agrega un número aleatorio.

Aquí está el código completo:

 Sub vba_random_number() Dim i As Long i = 10 For i = 1 To i ActiveCell.Value = Rnd() ActiveCell.Offset(1, 0).Select Next i End Sub

Número aleatorio entre dos números

Si desea generar un número aleatorio entre dos números definidos, en este caso necesita escribir código usando dos funciones VBA ( RND + INT ). El código para esta fórmula sería el siguiente.

numero-aleatorio-entre-dos-numeros
 Sub vba_random_number() Dim myRnd As Integer myRnd = Int(2 + Rnd * (45 - 10 + 1)) Range("A1") = myRnd End Sub

Cuando ejecuta esta macro , RND usa el número máximo y el número mínimo que configuró para generar el número aleatorio, e INT elimina el lugar decimal.

rnd-usa-el-número-máximo-y-mínimo

Uso de funciones de hoja de trabajo en código VBA para generar un número aleatorio

En VBA, puede acceder a las funciones de la hoja de trabajo y usarlas para obtener un resultado especificando los argumentos. Dos funciones de hoja de cálculo pueden ayudarle a obtener un número aleatorio en el resultado.

  • randentre
  • RandTableau

Antes de utilizar estas funciones, asegúrese de comprender los argumentos que necesita establecer. Ahora en el código siguiente tienes RANDBETWEEN que genera un número aleatorio entre dos números.

use-randbetween-genera-un-número-aleatorio-entre-dos-números
 Range("A1") = WorksheetFunction.RandBetween(1000, 2000)

Aquí el número máximo es 2000 y el número mínimo es 1000. De manera similar, puede usar RANDARRAY, que es una función de matriz dinámica.

Aquí está el código.

 Range("A1:B10") = WorksheetFunction.RandArray(10, 2, 1000, 2000, True)
usar-randarray-que-es-una-función-de-matriz-dinámica

Si observa la sintaxis de RANDARRAY, encontrará que puede ingresar números aleatorios en un rango de enteros, lo cual no es posible con todos los métodos que discutimos anteriormente.

sintaxis-randarray

Añadir un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *