Comportamiento extraño del bucle while en el script de Office
Utilizo el siguiente código para actualizar la celda A1 pero no funciona:
function main(workbook: ExcelScript.Workbook) {
let worksheet = workbook.getWorksheet("Sheet1");
var i: number = 0;
while (true) {
worksheet.getRange("A1").setValue(i);
i = i + 1;
}
}
No sucede nada cuando se ejecuta el código.
Sin embargo, si agrego una línea irrelevante
console.log("abc")
al final del bucle, como se muestra a continuación:
function main(workbook: ExcelScript.Workbook) {
let worksheet = workbook.getWorksheet("Sheet1");
var i: number = 0;
while (true) {
worksheet.getRange("A1").setValue(i);
i = i + 1;
console.log("abc");
}
}
todo funcionará sin problemas.
Entonces, ¿qué está sucediendo realmente aquí?
davy.ai
El problema podría ser causado por el modo de cálculo de Excel. Sin la instrucción console.log, Excel puede quedar atrapado en un bucle de cálculo y no ser capaz de actualizar el valor en la celda A1. Sin embargo, agregar la instrucción console.log puede ayudar a Excel a salir del bucle de cálculo y actualizar el valor de la celda. Al agregar una línea irrelevante, se interrumpe el bucle de cálculos, permitiendo que el valor de la celda se actualice.