Tengo la siguiente función de hoja de cálculo de Google:
function deleteRows() { const sheetName = "Sheet"; // Please set the sheet name. const ss = SpreadsheetApp.getActiveSpreadsheet(); const sheet = ss.getSheetByName(sheetName); const sheetId = sheet.getSheetId(); const requests = sheet .getRange(`S1:S${sheet.getLastRow()}`) .createTextFinder("Found") .findAll() .map(r => r.getRow()) .reverse() .map(r => ({deleteDimension:{range:{sheetId:sheetId,startIndex:r - 1,endIndex:r,dimension:"ROWS"}}})); Sheets.Spreadsheets.batchUpdate({requests: requests}, ss.getId()); }El script elimina las filas duplicadas con la actualización por lotes de API , si hay un texto "Encontrado" dentro de la columna S, sin embargo, a veces no hay filas duplicadas, por lo tanto, me gustaría que la función no devuelva el error:
GoogleJsonResponseException: la llamada API a sheets.spreadsheets.batchUpdate falló con el error: debe especificar al menos una solicitud.
y simplemente continúe con la siguiente función que se ejecuta después de finalizar la función deleteRows anterior.
¿Cómo evitar que se devuelva el error si no hay una solicitud?
En su situación, ¿qué tal la siguiente modificación?
Sheets.Spreadsheets.batchUpdate({requests: requests}, ss.getId()); if (requests.length > 0) { Sheets.Spreadsheets.batchUpdate({requests: requests}, ss.getId()); }requests tienen los valores, se ejecuta Sheets.Spreadsheets.batchUpdate .