Estoy tratando de copiar una fila específica en función de la ID, pero por ahora estoy luchando y copiando solo 1 fila en otra hoja, lo que debo hacer es cuando selecciono la ID para copiar todas las filas con la misma ID en otra hoja
let array= []; const catchID= (searchID) => { for(let i=0; i < rangeID.length; i++) { if(rangeID[i][0] === trazeniID){ array.push(rangeID[i]); } } return array; } catchID(searchID); const copyToAnotherSheet= () => { const selectedCell = sheet.getActiveCell(); const selectedCellRowIndex = selectedCell.getRow(); // get selected row const sourceRange = sheet.getRange(selectedCellRowIndex,1,1,sheet.getLastColumn()); const targetSheet = ss.getSheetByName('Another Sheet'); const targetRange = targetSheet.getRange(targetSheet.getLastRow()+1,1,1); for(let i=0; i < array.length; i++) { if(array[i] == searchID) { if(statusCell.getValue() === 'Payed' || statusCell.getValue() === 'Reinvest') { sourceRange.copyTo(targetRange); } }else{ SpreadsheetApp.getActiveSpreadsheet().toast('Something went wrong') } } }
La siguiente imagen muestra, por ejemplo: según el ID A277, se deben copiar todas las filas en otra hoja que depende del índice de la fila. Espero haber explicado bien mi situación.
Creo que su objetivo es el siguiente.
sheet , searchID y statusCell .rangeID . Entonces no pude entender array .array podría ser los valores de la hoja de origen.Cuando estos puntos se reflejan en un guión, se convierte en lo siguiente.
const copyToAnotherSheet = () => { const searchID = "A277"; // Please set the search text. const srcSheetName = "Sheet1"; // Please set the source sheet name. const dstSheetName = "Sheet2"; // Please set the destination sheet name. const ss = SpreadsheetApp.getActiveSpreadsheet(); const [srcSheet, dstSheet] = [srcSheetName, dstSheetName].map(s => ss.getSheetByName(s)); const [,...srcValues] = srcSheet.getDataRange().getValues(); const copyValues = srcValues.filter(r => r[1] == searchID && (r[11] == 'Payed' || r[11] == 'Reinvest')); dstSheet.getRange(dstSheet.getLastRow() + 1, 1, copyValues.length, copyValues[0].length).setValues(copyValues); }