Me gustaría hacer un generador visual de números aleatorios. Eso significa que en la celda F4, los números aleatorios deben mezclarse hasta que se detenga con un número aleatorio. Mi problema ahora es que solo puedo ver el último número generado y no el barajado.
function Wuerfeln() { var Upperbound = 60; var Lowerbound = 1; var i = Math.floor(Math.random() * (50 - 10 + 1) + 10); var RandomNummber = 0; var range = SpreadsheetApp.getActiveSpreadsheet().getRange("F4"); while(i>0) { RandomNummber = Math.floor(Math.random() * (Upperbound - Lowerbound + 1) + Lowerbound); range.setValue(RandomNummber); i--; Utilities.sleep(200); }; };Te sugiero que definas algunas cosas y luego las pruebes hasta que parezca que quieres, o lo que podrías hacer es crear una ventana emergente que muestre un .gif de un dado.
El primer enfoque se vería así
function wurfel(){ const timeDelay = 200 const numbersToShowUntilFinal = 20 // or do a random num // then your code here, // but using the variables above to test around until you found a cool }Hojas de cálculo de Google tiene un tiempo de actualización mínimo, no vas a hacer que cambie muy rápido por diseño.
Muchas solicitudes de un script se agrupan y ejecutan al mismo tiempo, por lo que cuando las ediciones están todas en la misma celda, no las ve cambiar y solo se muestra la última.
La única forma de forzar el cambio de una celda es usar SpreadsheetApp.flush() como lo sugiere Sergey . Esto obliga a que se envíen todos los cambios de hoja pendientes. Sin embargo, como ha notado, esto es lento.
Para hacer esto, necesitaría tener un cuadro de diálogo HTML o una barra lateral que pueda ejecutar JavaScript que cambie directamente los elementos HTML en lugar de una celda en la hoja de cálculo.