I have the following function in a google app script running on a google sheet.
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;
}
It was working fine up until yesterday, where it now returns the following type error:
TypeError: gradeSheet.getRange(...).getValue(...).toUpperCase is not a function
at GetRecords(Code:17:47)
Any ideas on how to fix this?
Thanks
Explanation:
getValue() can return Number, Date, Boolean, or String data type depending on the cell value. Your cell contained a non-string value so it cannot be converted to uppercase.
You could manually convert the value to String first:
gradeSheet.getRange(y, 1).getValue().toString().toUpperCase()
Sample:
Reference: