es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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í?

Tags:  , ,

Answer

  1. Avatar for 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.

Comments are closed.