【问题标题】:Trigger from cell modification on specific sheet从特定工作表上的单元格修改触发
【发布时间】:2021-08-26 11:28:21
【问题描述】:

我有一个名为 Project 的电子表格,其中包含两个不同的工作表:P1 和 P2 当修改工作表 P2 的单元格 A1 时,我需要触发一个函数。我在 P2 的 B2 中打印“它有效”的字样并调用该函数

我的代码如下:

function onEdit(e) {
 if(e.range.getA1Notation() == 'A1' && e.range.getSheet.getName() == 'P2'){
 var ss = SpreadsheetApp.getActive();
 var sheet = ss.getSheetByName("P2");
 sheet.getRange(2, 2).setValue('It worked')
 //call function
 }
};

但是,当修改 P1 中的 A1 时,我的代码也会触发该功能。 我不知道我的错误在哪里

帮助

【问题讨论】:

  • 你在 getSheet 之后错过了括号:e.range.getSheet().getName(),但这可能不是解决方案,因为它永远不会触发更新,无论是 P1 还是 P2

标签: javascript api google-apps-script triggers


【解决方案1】:
function onEdit(e) {
  //this function requires less function calls
  const sh = e.range.getSheet()
  if (e.range.columnStart == 1 && e.range.rowStart == 1 && sh.getName() == 'P2') {
    sh.getRange(2, 2).setValue('It worked');
    //call function
  }
}

但请记住,这仅适用于用户编辑,不适用于公式或其他触发器所做的更改。

【讨论】:

  • 嗨@Cooper,感谢您的回答。实际上它不起作用,因为编辑是由 (1,1) 位置的脚本进行的。我猜 onEdit(e) 函数不会将此视为用户编辑。周围有工作吗?
  • 我不知道。
猜你喜欢
  • 1970-01-01
  • 2018-02-03
  • 1970-01-01
  • 1970-01-01
  • 2017-02-12
  • 2018-10-06
  • 1970-01-01
  • 1970-01-01
  • 2015-01-12
相关资源
最近更新 更多