He estado tratando de recorrer un rango de datos y llevar los datos a otra hoja hasta que el ciclo llega a una de las siguientes palabras (Herramientas, Pintura) y se detiene allí.
Estaba buscando un bucle for + while, pero no estoy seguro de que esta sea la mejor manera de hacerlo.
Aquí está el borrador del código en el que estoy trabajando:
function importPipeworkData() { const ss = SpreadsheetApp.getActiveSpreadsheet(); const input4File = ss.getSheetByName('Input Files Mapping').getRange('B4').getValue() const pipeworkSheet = SpreadsheetApp.openByUrl(input4File).getSheetByName('Sheet1'); const inputPipeworkRng = pipeworkSheet.getRange(2, 1, pipeworkSheet.getLastRow(), 4); const inputPipeworkData = inputPipeworkRng.getValues(); const boqPipeworkSheet = ss.getSheetByName('BOQ Pipework'); const boqPipeworkRng = boqPipeworkSheet.getRange(4, 1, boqPipeworkSheet.getLastRow(), 4); //boqPipeworkRng.clear(); //Clears the sheet to receive updated data; const pipeworkData = []; for (let a = 0; a < inputPipeworkData.length; a++) { while (inputPipeworkData[a][0] != 'Valves') //This is one of the unclear parts Logger.log(inputPipeworkData[a][1]) } }Este es un ejemplo del conjunto de datos: https://docs.google.com/spreadsheets/d/1W9zPt1nYKv59j9kjgFqy5Z4KPgvXZUoCusTk06kRQUk/edit?usp=sharing
Agradecería si se pudiera brindar alguna ayuda aquí.
Saludos, antonio
De este modo,
for , es necesaria una instrucción if adicional.while , debe asegurarse de incrementar su variable de contador. Ejemplo con bucle for :
const keyWords = ["Tools", "Painting"]; for (let a = 0; a < inputPipeworkData.length; a++) { if (keyWords.indexOf(inputPipeworkData[a][0]) > - 1){ break; } Logger.log(inputPipeworkData[a][1]); pipeworkData.push(inputPipeworkData[a]); } } Ejemplo con ciclo while :
const keyWords = ["Tools", "Painting"]; var a = 0; while (keyWords.indexOf(inputPipeworkData[a][0]) == - 1){ Logger.log(inputPipeworkData[a][1]); pipeworkData.push(inputPipeworkData[a]); a++ } }