首页 > 解决方案 > 如何限制编辑脚本在特定列_google工作表中运行

问题描述

我在工作表中运行脚本以允许多项选择。该脚本有效,但是当我去编辑工作表上其他地方的单元格时,信息消失了。我只需要为第 5 列运行此脚本,因此如果在其他地方记录了某些内容,它不会一直消失。

function onEdit(e) {
    var oldValue;
    var newValue;
    var ss=SpreadsheetApp.getActiveSpreadsheet();
    var activeCell = ss.getActiveCell();
    if(activeCell.getColumn() == 5 && ss.getActiveSheet().getName()=="TRACKER- Relaunch")
        newValue=e.value;
    oldValue=e.oldValue;
    if(!e.value) {
        activeCell.setValue("");
    }
    else {
        if (!e.oldValue) {
            activeCell.setValue(newValue);
        }
        else {
            if(oldValue.indexOf(newValue) <0) {
                activeCell.setValue(oldValue+','+newValue);
            }
            else {
                activeCell.setValue(oldValue);
            }
        }
    }
}

标签: google-apps-scriptgoogle-sheets

解决方案


尝试这个:

function onEdit(e) {
  var sh=e.range.getSheet();
  if(e.range.columnStart==5 && sh.getName()=="TRACKER- Relaunch") { 
    if(!e.value) {//this doesn't make much sense
      e.range.setValue("");
    }else if(!e.oldValue) {//nor does this
      e.range.setValue(e.value);
    }else if(e.oldValue.indexOf(e.value)==-1) {
      e.range.setValue(e.oldValue + ',' + e.value);
    }else{ 
      e.range.setValue(e.oldValue);
    }
  }
}

推荐阅读