después de la publicación anterior Script setValue basado en los valores de la columna basado en el valor de otra referencia de coincidencia de columna
donde recolecté identificaciones de hojas, actualmente casi 300
estoy tratando de editar TODAS esas hojas de cálculo de sus ID
function update() { const ss = SpreadsheetApp.getActiveSpreadsheet(); // Source spreadsheet const src = ss.getSheetByName('Relação'); // Source sheet const LR = src.getLastRow(); const Target_Id = src.getRange("B2:B" + LR).getValues(); // Target IDs for (var i = 0; i < LR; i++) { if ( Target_Id[i] !== "" ) // check to skip "" rows { var ss_t = SpreadsheetApp.openById(Target_Id[i]); // Target spreadsheet var trg = ss_t.getSheetByName('Config'); // Target sheet trg.getRange("B24").setValue("TEST"); } } }y funciona hasta que una fila en la columna B está "" en blanco
Exception: Invalid argument: id update @ script.gs:14aparentemente mi cheque
if ( Target_Id[i] !== "" )no funciona como lo intenté, realmente no entiendo por qué, esa es mi pregunta principal
pregunta 2: como probé, sé que, dado que estoy tratando de actualizar casi 300 hojas, me encontraré con otro problema
Exceeded maximum execution timeactualizar todo va a ser lento, presione ese error alrededor de ID 40, entonces, ¿hay alguna manera de optimizar el proceso para que pueda actualizar todas las hojas de cálculo? por ahora estoy tratando de actualizar solo 1 celda, como prueba de concepto, el objetivo final es hojas completas con fórmulas, formato, etc., pero ese es un tema para una publicación futura si es necesario
En su secuencia de comandos, modifique su secuencia de comandos de la siguiente manera.
Target_Id[i] !== "" Target_Id[i][0] != ""getValues() es una matriz bidimensional. Por esto, propuse la modificación anterior.