同一工作表中的OnEdit Google脚本-它们分别工作,但效果不佳

时间:2019-12-02 09:37:09

标签: google-apps-script google-sheets

我将这些脚本分开工作,但是当我将它们组合或创建两个不同的脚本时,只有一个会起作用。 我想念什么?

function onEdit(e) {

var sheet = e.source.getActiveSheet(),

    editCols = [20, 21, 22, 23, 24, 25, 26, 27]

if (sheet.getName() !== 'THANG11' || editCols.indexOf(e.range.columnStart) ==

    -1 || e.range.rowStart < 3 || e.range.rowStart > 6) 

if (sheet.getName() !== 'THANG12' || editCols.indexOf(e.range.columnStart) ==

    -1 || e.range.rowStart < 3 || e.range.rowStart > 6)   

    return;

sheet.getRange("I1").setValue(new Date());
}

1 个答案:

答案 0 :(得分:1)

有两种合并if语句的可能性。

  

第一种可能性

function onEdit(e) {
  ...
  if (sheet.getName() != 'THANG11' || ...){
    return;
    } 
  if (sheet.getName() != 'THANG12' || ...){  
    return;
  }
  sheet.getRange("I1").setValue(new Date());
  ...
}

在这种情况下,您实现两个单独的if语句,并在大括号内指定要满足相应条件的代码块。

在您的情况下,两个编码(return)的执行代码相同,因此您可以在一个if语句中实现两个条件:

  

第二种可能性

function onEdit(e) {
  ...
  if (sheet.getName() != 'THANG11' || sheet.getName() != 'THANG12' ||...){
    return;
    }
  sheet.getRange("I1").setValue(new Date());
  ...
}