Tengo la siguiente función en un script de aplicación de Google que se ejecuta en una hoja de Google.
function GetRecords(username) { var ss= SpreadsheetApp.getActiveSpreadsheet(); var displaySheet = ss.getSheetByName("DISPLAY SHEETS"); var getLastRow = displaySheet.getLastRow(); var gradeArray = []; for(var i = 2; i <= getLastRow; i++) { var gradeSheetName = displaySheet.getRange(i, 1).getValue(); var gradeSheet = ss.getSheetByName(gradeSheetName); var getLastRowGrade = gradeSheet.getLastRow(); for(var y = 2; y <= getLastRowGrade; y++) { if(gradeSheet.getRange(y, 1).getValue().toUpperCase() == username.toUpperCase()) { var grade = gradeSheet.getRange(y, 2).getValue(); gradeArray.push([username.toUpperCase(), gradeSheetName, grade]); } } } return gradeArray; }Estaba funcionando bien hasta ayer, donde ahora devuelve el siguiente tipo de error:
TypeError: gradeSheet.getRange(...).getValue(...).toUpperCase is not a function at GetRecords(Code:17:47)¿Alguna idea sobre cómo solucionar este problema?
Gracias
Explicación:
getValue() puede devolver el tipo de datos Número, Fecha, Booleano o Cadena según el valor de la celda. Su celda contenía un valor que no es una cadena, por lo que no se puede convertir a mayúsculas.
Puede convertir manualmente el valor a String primero:
gradeSheet.getRange(y, 1).getValue().toString().toUpperCase()Muestra:
Referencia: