Tengo una hoja de "transporte" donde hay cientos de pedidos en la columna D, para cuál, creé un aviso donde ingreso diferentes pedidos (más de 10), para esto hice un código que busca todas las filas donde están estos pedidos. se encuentran y obtienen sus valores.
El codigo funciona hasta cierto punto, ya que encuentra las filas y sus valores, pero cuando los pego en la "hoja de envios" se sobrescriben todos en la misma fila "2", quedando la ultima orden ingresada en el prompt, visible en la segunda fila.
Mi código:
function rutaDinamica() { var ui = SpreadsheetApp.getUi(); var result = ui.prompt( 'Pedidos a transportar?', 'Ingresa los pedidos:', ui.ButtonSet.OK_CANCEL); var datos = result.getResponseText().split(" "); var boton = result.getSelectedButton(); var data = []; console.log(datos); datos.forEach(function (value) { const spreadsheetTR = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/1F1CEnVvU6Bv9zs38Kx0xo_RCQa1sF0cmmE6DCWa7IAw/edit#gid=0"); var origen2 = spreadsheetTR.getSheetByName("Transporte"); const spreadsheet2 = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/1UaY9Ch7rpca1LWPLU1TivtssUaC8pILCu-wb_HHoV54/edit#gid=507705369"); var destino = spreadsheet2.getSheetByName("Envios"); const depuracionTR = destino.getRange(2, 1, destino.getLastRow(), 10).clearContent(); var columna = origen2.getRange("D:D") var textFinder = columna.createTextFinder(value); var ranges = textFinder.findAll(); if (boton == ui.Button.OK) { for (var i = 0; i < ranges.length; i++) { var celdas = origen2.setActiveSelection(ranges[i].getA1Notation()); var filas = celdas.getRowIndex(); var filasb = origen2.getRange(filas, 1, 1, 10).getDisplayValues(); Logger.log(filasb); data.push(filasb); } } else if (boton == ui.Button.CANCEL) { } else if (boton == ui.Button.CLOSE) { } }); const spreadsheet3 = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/1UaY9Ch7rpca1LWPLU1TivtssUaC8pILCu-wb_HHoV54/edit#gid=507705369"); var destino = spreadsheet3.getSheetByName("Envios"); Logger.log(data); destino.getRange(2, 1, data.length, data[0].length).setValues(data); }