繁体   English   中英

TypeError:无法读取未定义 onEdit 的属性“源” - Google Apps 脚本

[英]TypeError: Cannot read property 'source' of undefined onEdit - Google Apps Script

我正在处理以下代码。 我收到以下错误消息:

TypeError:无法读取未定义 onEdit @ Code.gs:6 的属性“源”

代码:

function onEdit(event) {
// assumes source data in sheet named calls
// target sheet of move to named Completed
// getColumn with drop-downs is currently set to column 7 or F
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = event.source.getActiveSheet();
var r = event.source.getActiveRange();

if(s.getName() == "Calls" && r.getColumn() == 7 && r.getValue() == "CSR Transfer") {
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("CSR Transfer");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).moveTo(target);
s.deleteRow(row);
}

解释:

这个 function 在用户编辑工作表时自动执行。

  • 您不应该像现在那样手动执行此操作,因此您会遇到错误。

  • 特别是,您在 if 语句中的代码块将在工作表Calls的第 7 列(G 列)中进行编辑并且编辑的值为CSR Transfer时执行。

代码片段:

充分利用事件 object

function onEdit(event) {
  const ss = event.source;
  const s = ss.getActiveSheet();
  const r = event.range;
  if(s.getName() == "Calls" && r.getColumn() == 7 && r.getValue() == "CSR Transfer") {
    const row = r.getRow();
    const numColumns = s.getLastColumn();
    const targetSheet = ss.getSheetByName("CSR Transfer");
    const target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
    s.getRange(row, 1, 1, numColumns).moveTo(target);
    s.deleteRow(row);
  }
}

确保代码已保存,工作表名称: CallsCSR Transfer存在,并且您使用值CSR Transfer编辑Calls中的G列。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM