【问题标题】:TypeError: Cannot read property 'source' from undefinedTypeError:无法从未定义中读取属性“源”
【发布时间】:2018-07-17 17:03:21
【问题描述】:

我对编码很陌生,遇到了一个我无法解决的问题。我在论坛中看到过类似的问题,但似乎无法根据这些答案解决我的问题。我正在尝试设置一个脚本,当在特定列中输入“已关闭”时,该脚本会将一行移动到另一个工作表。从 GoogleSheet 运行脚本时,我不断收到以下错误:

“TypeError:无法从未定义中读取属性“源”。”

这是我正在使用的代码:

 function onEdit(event) {
      // assumes source data in sheet named Open
      // target sheet of move to named Closed
      // test column with yes is col 8 or H
  var ss = SpreadsheetApp.getActiveSheet();
  var s = event.source.getActiveSheet();
  var r = event.source.getActiveRange();

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

任何帮助将不胜感激!

【问题讨论】:

  • 如果您从脚本编辑器运行它,该函数将不接收任何参数。只有当您通过编辑绑定电子表格中的单元格来激活简单触发器时,具有 on edit 触发器的函数才会接收编辑事件对象。查看 Apps 脚本触发器文档

标签: google-apps-script triggers google-apps-script-editor


【解决方案1】:

我以前从未使用过 google 脚本,但从外观上看,“.source”没有被识别,那是因为您将它用作事件的函数;当您将其声明为 pass 时,您还没有给出类型和名称。尝试“event e”,然后使用 e.source?

【讨论】:

  • Apps 脚本是 JavaScript,没有输入。
猜你喜欢
  • 2017-03-10
  • 2018-12-20
  • 2014-07-31
  • 2012-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-29
相关资源
最近更新 更多