Estoy intentando crear un generador de números de pieza para un gran proyecto en la escuela. Necesito poder utilizar la función =RANDBETWEEN(0,999999)
para generar una parte del número de pieza. El problema es la actualización del =RANDBETWEEN(0,999999)
. Si hago referencia a la celda, todos los números de pieza terminarán con el mismo número aleatorio. Necesito una función que guarde el número aleatorio anterior en su lugar pero mantenga la capacidad de =RANDBETWEEN(0,999999)
actualizarlo para generar un nuevo número para la siguiente parte. He estado buscando durante 2 días una manera de hacer esto. Espero que alguien pueda ayudar. No tengo experiencia con VBA y me gustaría mantener esto como una función para que pueda ser utilizada por todos los usuarios del equipo.
Respuesta1
No es una respuesta.
Tenga en cuenta que RAND(), RANDBETWEEN() y todas las funciones similares generarán un nuevo número para cada RECÁLCULO de una hoja de trabajo.
F9 o SHIFT+CTRL+F9 (en LibreOffice) inicia un recálculo, que hará que el problema sea visible para usted.
Tampoco habrá garantía de que los números generados sean únicos.
A continuación se muestra una función que PODRÍA ser un punto de partida para que una macro iniciada manualmente o con el teclado establezca una determinada celda en un número aleatorio de seis dígitos con ceros a la izquierda.
NO PROBADO (No hay Excel disponible, es probable que tenga al menos uno o dos errores)
función rndNum(celda) rndNum=WorksheetFunction.RANDBETWEEN(0,999999) si celda<>"" entonces Rango(celda).Value="'" & WorksheetFunction.TEXT(rndNum,"000000") terminara si función final
Respuesta2
Puede crear una función con nombre, por ejemplo EVAL
en el administrador con nombre:
=LAMBDA(x,EVALUATE(x))
Ahora puedes invocar esto en tu hoja de trabajo a través de:
=EVAL("RANDBETWEEN(0,999999)")
Esto creará un número aleatorio que solo cambiará cuando vuelvas a aplicar esa fórmula en esa celda exacta.
Tenga en cuenta que esto hará que su libro de trabajo sea xlsm al guardarlo; de lo contrario, perderá la función nombrada (los números aleatorios permanecerán en su lugar).