多列的Google OnEdit脚本不连续

时间:2017-10-25 03:50:46

标签: google-apps-script google-sheets

我需要有关此代码的帮助,该代码是通过Google电子表格上的链接发送给我的。

代码工作正常,但它只适用于单个列(A列)。我希望有人可以帮助编辑代码,使其在多列上工作,这些列可能连续也可能不连续。例如,列A到E和列K到O。

function onEdit() {
  if(SpreadsheetApp.getActiveRange().getValue() == "1" && SpreadsheetApp.getActiveRange().getColumn()=="1") {
    SpreadsheetApp.getActiveRange().setValue('=CHAR(9745)');
  }
  if(SpreadsheetApp.getActiveRange().getValue() == "0" && SpreadsheetApp.getActiveRange().getColumn()=="1") {
    SpreadsheetApp.getActiveRange().setValue('=CHAR(9744)');
  }
}

1 个答案:

答案 0 :(得分:0)

您只需要删除列检查(条件的第二部分),使其适用于任何列。 最好使用传递给函数的事件对象,因为活动范围可以在执行期间更改。

function onEdit(e) { 
  if(e.value == "1") {
    e.range.setValue('=CHAR(9745)');
  } else if(e.value == "0") {
    e.range.setValue('=CHAR(9744)');
  }
}

如果您希望特定范围具有此功能,您可以将条件更改为以下内容:

function onEdit(e) { 
  if([1,2,3].indexOf(e.range.getColumn()) > -1) {
    if (e.value == 1) {
      e.range.setValue('=CHAR(9745)');
    } else if(e.value == "0") {
      e.range.setValue('=CHAR(9744)');
    }
  }
}