首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >谷歌工作表- onEdit

谷歌工作表- onEdit
EN

Stack Overflow用户
提问于 2021-01-11 02:11:12
回答 2查看 84关注 0票数 0

我试图在同一个工作表上运行两个onEdit,但一次只能运行一个:

第一个函数:

代码语言:javascript
复制
function onEdit(e) {
if ([8,9].indexOf(e.range.columnStart) != -1) {
e.range.offset(0, 2).setValue(new Date());
}
}

第二个函数:

代码语言:javascript
复制
function onEdit(e) {
var value = (typeof e.value == "object" ? e.range.getValue() : e.value);
if (e.range.columnStart == 14 && value == "ISSUED") {
e.range.offset(0,1).setValue(new Date());
}
}

我是一个入门级的执行脚本,有什么帮助吗?提前感谢您的帮助!

EN

回答 2

Stack Overflow用户

发布于 2021-01-11 02:24:23

您有两个选择。以下是hybryd代码的示例:

嵌套:

代码语言:javascript
复制
function onEdit(e) {
  moveRowsFromSheetToSheet_(e);
}

function moveRowsFromSheetToSheet_(e) {
  // start of code
  if(condition == met) {
    //operation to follow
  } //closes if statement operations; no close to moveRowsFromSheetToSheet_()

  function moveRowsFromSheetToSheet1_() {
    //start of code
    if(condition == met){   
      //operation to follow
    } //closes if statement operation
  } //closes moveRowsFromSheetToSheet1_()
  moveRowsFromSheetToSheet1_; //calls moveRowsFromSheetToSheet1_() so that it will run after moveRowsFromSheetToSheet_() code
} // closes moveRowsFromSheetToSheet_()

未嵌套的:

代码语言:javascript
复制
function onEdit(e) {
  moveRowsFromSheetToSheet_(e);
  moveRowsFromSheetToSheet1_();
}

function moveRowsFromSheetToSheet_(e) {
  // start of code
  if(condition == met) {
    //operation to follow
  } //closes if statement operations


function moveRowsFromSheetToSheet1_() {
  //start of code
  if(condition == met){   
    //operation to follow
  }
}
票数 1
EN

Stack Overflow用户

发布于 2021-01-11 05:32:46

在您的案例中,最直接的方法是使用当前的函数,并将它们包装在单个onEdit触发器中,因为每个项目只能有一个触发器:

代码语言:javascript
复制
function onEdit(e){
  myFunction1(e);
  myFunction2(e);
}

function myFunction1(e) {
if ([8,9].indexOf(e.range.columnStart) != -1) {
e.range.offset(0, 2).setValue(new Date());
}
}

function myFunction2(e) {
var value = (typeof e.value == "object" ? e.range.getValue() : e.value);
if (e.range.columnStart == 14 && value == "ISSUED") {
e.range.offset(0,1).setValue(new Date());
}
}

只需保存代码,它将在编辑时工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65656732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档