0

我正在尝试组合多个 onEdit 函数,作为初学者正在努力让它工作。函数 2 到 5 自己运行良好,当我添加新的myFunction 1(e)时它停止工作并返回错误消息

TypeError:无法读取未定义的属性“值”

并且指的是下面用粗体标出的两行。

最终,我的目标是在复选框右侧的新列中为每个评估为 true 的复选框获取时间戳(我的工作表上有 4 个带有复选框的列)。

任何帮助将非常感激。

function onEdit(e){
 **myFunction1(e);**
 myFunction2(e);
 myFunction3(e);
 myFunction4(e);
 myFunction5(e);
}
function myFunction1(e){
  // KP - this function returns a timestamp to the right of a checkbox with a value of true
**if(e.value!="TRUE") return;**
   e.source.getActiveSheet().getRange(e.range.rowStart,e.range.columnStart+1).setValue(new Date());
}
function myFunction2(e){
 // KP - this function autosorts the due date column when a date is changed or added
 var sheet = SpreadsheetApp.getActiveSheet();
 if (sheet.getName() == 'Job List - Input') {
 var editedCell = sheet.getActiveCell();
 var columnToSortBy = 5;
 var tableRange = "A5:U"; // What to sort
 // column A = 1, B = 2, etc…
 if(editedCell.getColumn() == columnToSortBy){   
   var range = sheet.getRange(tableRange);
   range.sort( { column : columnToSortBy, ascending: true } );
 }
 }
}
4

1 回答 1

0

通过从 Apps 脚本编辑器运行该代码,您可能会收到错误消息。我看到代码旨在管理由触发器生成的事件对象,但从 IDE 运行它不会提供事件对象。您应该从触发事件运行此脚本。由于这适用于onEdit(),因此您应该编辑捆绑的工作表以启动代码。如果您需要,请让我澄清我的观点。

于 2021-06-25T11:22:53.333 回答