Reputation: 21
Can someone please help with, for some reason out of nowhere the "onEdit" function stopped working for me.
Yesterday everything worked perfectly fine and I checked the authorization but for some reason the following onEdit()
script no longer works for me?
I also get the "Cannot read property "range" from undefined" error.
function onEdit(e) {
insertRow(e);
timeStamp(e);
}
function insertRow(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var range = e.range;
if(sh.getName()!="Test")return;
var colIValue=sh.getRange(e.range.rowStart,9).getValue();
var colHValue=sh.getRange(e.range.rowStart,8).getValue();
if (colHValue=="Yes" & e.range.getColumn()==9 & colIValue==true){
sh.insertRowsAfter(e.range.rowStart, Number(sh.getRange(e.range.rowStart,4).getValue())-1);
}
}
function timeStamp(e) {
var sh=e.range.getSheet();
if(sh.getName()!="Test"){return;}
if(e.range.columnStart<7) {
var ts=Utilities.formatDate(new Date(), Session.getScriptTimeZone(),"MM/dd/yy HH:mm");
sh.getRange(e.range.rowStart,7,e.range.rowEnd-e.range.rowStart+1,1).setValue(ts);
}
}
Upvotes: 1
Views: 124
Reputation: 64032
Try this:
function onEdit(e) {
//e.source.toast('Flag1');
insertRow(e);
timeStamp(e);
}
function insertRow(e) {
//e.source.toast('flag2');
var sh=e.range.getSheet();
var range = e.range;
if(sh.getName()!="Test")return;
var colIValue=sh.getRange(e.range.rowStart,9).getValue();
var colHValue=sh.getRange(e.range.rowStart,8).getValue();
//the next line is always false unless you have a checkbox in column9 and you set it up with a custom value of 'yes' for true.
if (colHValue=="Yes" && e.range.columnStart==9 && colIValue==true){
sh.insertRowsAfter(e.range.rowStart, Number(sh.getRange(e.range.rowStart,4).getValue())-1);
}
}
function timeStamp(e) {
//e.source.toast('flag3');
var sh=e.range.getSheet();
if(sh.getName()!="Test"){return;}
if(e.range.columnStart<7) {
var ts=Utilities.formatDate(new Date(), Session.getScriptTimeZone(),"MM/dd/yy HH:mm");
sh.getRange(e.range.rowStart,7,e.range.rowEnd-e.range.rowStart+1,1).setValue(ts);
}
}
Upvotes: 1