Tengo una pestaña de entrada con 13 columnas de datos. Usé el filtro de Hojas de cálculo de Google para restringir los datos y solo quiero que los datos filtrados se coloquen en una pestaña de salida.
Intenté usar este código de Google Apps Script para eso, sin embargo, no funciona según lo previsto.
function showResults() { var sheet = SpreadsheetApp.getActiveSheet(); var data = []; for (var i = 1; i < sheet.getLastRow(); i++) { if(!sheet.isRowHiddenByFilter(i)) { var row_data = sheet.getRange("A" + i + ":M" + i).getValues(); console.log(row_data); data.push(row_data); } } sheet.getRange('Results!A1:M' + (data.length + 1)).setValues(data); }El problema que noté en los registros es que solo pasa por la primera fila de los datos filtrados antes de exceder el tiempo máximo de ejecución.
Se agradece cualquier ayuda, especialmente si se trata de una función de Hojas de cálculo de Google que no conocía y no necesariamente el código.
Hola, debe clonar su sheet y usar un objeto clonado para solucionar su problema de esta manera:
function showResults() { var sheet = SpreadsheetApp.getActiveSheet(); var data = []; for (var i = 1; i < sheet.getLastRow(); i++) { let cache = JSON.parse(JSON.stringify(sheet )) if(!sheet.isRowHiddenByFilter(i)) { var row_data = cache.getRange("A" + i + ":M" + i).getValues(); console.log(row_data); data.push(row_data); } } sheet.getRange('Results!A1:M' + (data.length + 1)).setValues(data); }