Hola a todos,
Estoy teniendo un problema muy frustrante con un script de Google Apps Script que intenta pegar como valores los resultados de una fórmula FILTER en la misma hoja. La fórmula FILTER está en la celda A2 de la hoja llamada "Matriz OPAIN".
El objetivo del script es:
- Obtener los valores resultantes del FILTER.
- Pegar esos valores de nuevo en la hoja, sobrescribiendo la fórmula en A2 y los resultados.
He intentado varias formas de escribir el script, pero consistentemente me encuentro con el error: "Service Spreadsheets failed while accessing document with id...". A veces el script se ejecuta sin errores (dice "Se ha completado la ejecución"), pero no realiza ningún cambio en la hoja.
Aquí está el último código que he probado:
function pegarValoresDeFilter() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var hoja = ss.getSheetByName("Matriz OPAIN");
if (!hoja) {
Logger.log("No se encontró la hoja 'Matriz OPAIN'.");
return;
}
var celdaFilter = hoja.getRange("A2");
var rangoFiltrado = celdaFilter.getDataRegion();
var valoresFiltrados = rangoFiltrado.getValues();
if (valoresFiltrados.length > 0) {
hoja.getRange(2, 1, valoresFiltrados.length, valoresFiltrados[0].length)
.setValues(valoresFiltrados);
}
}
También he intentado:
- Obtener la hoja por ID.
- Usar getDataRegion() desde diferentes celdas.
- Especificar rangos explícitamente.
- Añadir una pausa con Utilities.sleep().
- Revocar y reautorizar los permisos del script.
El error sigue apareciendo de forma intermitente. ¿Alguien podría ayudarme a entender por qué ocurre este error y cómo solucionarlo?
Gracias de antemano por su ayuda.