martes, 28 de diciembre de 2021

Office Scripts: Los bucles FOR

Me he animado a escribir una serie de artículos explicando, con ejemplos, algunas de las sentencias de control básicas para trabajar con Office Scripts (TypeScript).
Hoy comenzaré con algunos de los tipos de bucles existentes.

El primero por el que comenzaría sería por un FOR-LOOP básico, con una estructura o sintaxis:
for (variable=inicio; variable<=final; variable=variable+incremento)
{
// nuestro código a procesar
}


Un ejemplo de este tipo de bucle podría ser el siguiente:
function main(workbook: ExcelScript.Workbook)
{
  //identificamos la hoja activa
  let Hoja = workbook.getActiveWorksheet();
  
  //marcamos un bucle desde cero hasta 10
  //Recuerda que estamos en BASE CERO !!
  for (let fila = 0; fila <= 9; fila++)
  {
    //para cada valor de 0 a 9 creamos un número entero aleatorio
    let aleatorio = Math.floor(Math.random() * (100 - 0 + 1) + 0);
    //y lo trasladamos a las celdas de la columna A
    Hoja.getCell(fila, 0).setValue(aleatorio);
  }
}

Office Scripts: Los bucles

Este ejemplo recorre los números de 0 hasta 9, que luego empleamos para identificarlos como filas de la columna A, y añadir a cada celda un número entero aleatorio previamente generado.


Otro bucle sería el FOR-IN con sintaxis:
for (variable in object)
{
// nuestro código a procesar
}


Por ejemplo:
function main(workbook: ExcelScript.Workbook)
{
  //identificamos la hoja activa
  let Hoja = workbook.getActiveWorksheet();
  //declaramos el objeto del rango A1:A10
  let enteros=Hoja.getRange("A1:A10").getValues()

  //y lo recorremos.. llevando los valores a la Consola
  for (let i in enteros) 
  {
    console.log(enteros[i])
  }
}

Office Scripts: Los bucles

En el ejemplo recorremos el rango de celdas A1:A10 y la mostramos en la 'Consola' (algo parecido a la ventana de inmediato en VBA para Excel.

Otra forma sería el FOR_OF:
for (variable of object)
{
// nuestro código a procesar
}


Veamos un ejemplo:
function main(workbook: ExcelScript.Workbook) {
  //identificamos la hoja activa
  let Hoja = workbook.getActiveWorksheet();
  //declaramos el objeto del rango A1:A10
  let enteros = Hoja.getRange("A1:A10").getValues()

  //y lo recorremos.. llevando los valores a la Consola
  for (let i of enteros) 
  {
    //OJO con la forma de referirnos a los elementos del objeto!!
    console.log(i)
  }
}

Relevante la manera en que nos referenciamos a los elementos del objeto indicado, distinto al anterior FOR-IN.

Un último bucle FOR, sería aplicable al trabajar con Arrys/Matrices, hablo de FOREACH, con sintáxis:
matriz.forEach(function(variable, i)
{
// nuestro código a procesar
})


Por ejemplo:
function main(workbook: ExcelScript.Workbook) 
{
  //identificamos la hoja activa
  let Hoja = workbook.getActiveWorksheet();
  //declaramos el objeto del rango A1:A10
  let enteros = Hoja.getRange("A1:A10").getValues();
  
  //y lo recorremos.. llevando los valores a la Consola
  enteros.forEach( Num =>
  {
    console.log(Num);
  });
}


En siguientes artículos continuaré con estas y otras interesantes sentencias de control...

No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.