I am not a coder but try to build an inventory tracking tool using google java script. I am having "TypeError: Cannot read property 'range' of undefined" for below code. Not sure, how resolve it. Please help me resolve this.
function onEdit(e) {
var range = e.range;
var spreadSheet = e.source;
var spreadSheetName = spreadSheet.getActiveSpreadsheet().getName();
var searchColumn = range.getColumn();
var searchRow = range.getRow();
//DEFINE ALL ACTIVE SHEET
var ss = SpreadsheetApp.getActiveSpreadsheet();
//DEFINE MENU SHEET
var menuSheet = ss.getRangeByName("Menu");
var inventorySheet = ss.getSheetByName("Inventory");
Logger.log('Column: ' + searchColumn + ' Row: ' + searchRow + ' Value:' + e.value + ' spreadSheetName: ' + spreadSheetName);
if(searchColumn == 2 && searchRow == 4 && e.value != '' && spreadSheetName == 'Menu') {
var partNumber = e.value;
//LAST ROW ON INVENTORY SHEET
var lastRow = inventorySheet.getLastRow() + 1;
var foundRecord = false;
for(var j = 2; j < lastRow; j++) {
//UPDATE EXISTING QUANTITY AT FROM LOCATION
if(inventorySheet.getRange(j,1).getValue() == partNumber) {
var nextRow = menuSheet.getLastRow() + 1;
menuSheet.getRange(nextRow,1).setValue([inventorySheet.getRange(j,1).getValue()]).setFontSize(12).setFontWeight("bold");
menuSheet.getRange(nextRow,2).setValue([inventorySheet.getRange(j,1).getValue()]).setFontSize(12).setFontWeight("bold");
menuSheet.getRange(nextRow,3).setValue([inventorySheet.getRange(j,1).getValue()]).setFontSize(12).setFontWeight("bold");
foundRecord = true;
}
}
if(foundRecord == false) {
menuSheet.getRange(10,1).setValue(['(NO RECORDS FOUND)']).setFontSize(12).setFontWeight("bold");
}
}