在特定工作表上运行脚本-Google工作表

时间:2019-11-29 11:56:34

标签: google-apps-script google-sheets

我想知道如何修改脚本以针对指定标签(检查)而不是所有标签。下面是我的脚本:

function onEdit(e) {    
  var sheet, cols, colInd, offset, format;   
  sheet = e.source.getActiveSheet();
  cols = [7,13,14,16];
  colInd = cols.indexOf(e.range.columnStart);
  if (colInd == -1) return;
  if (colInd < 3) {
    offset = [4,-1,1,1];
    format = "MM/dd/yyyy HH:mm:ss";
    e.range.offset(0, offset[colInd])
    .setValue(Utilities.formatDate(new Date(), "GMT+8", format));
  } else {
    setValidation(e);
  }
}

这是我的样本表:https://docs.google.com/spreadsheets/d/1hQhh3UlWm38ILADMqlCuv08GipMBDWVOF4l4gzM5tjE/edit#gid=2039637864

2 个答案:

答案 0 :(得分:1)

如果要在编辑文档中的任何图纸时获取对“检查”图纸的引用,则Raserhin的答案有效。

如果您只想在编辑“检查”表时运行代码,请使用以下代码。

function onEdit(e) {

    var sheet, cols, colInd, offset, format;   
    sheet = e.source.getActiveSheet();
    if (sheet.getName() === 'Check') {  // Condition to check edited Sheet
        cols = [7,13,14,16];
        colInd = cols.indexOf(e.range.columnStart);
        if (colInd == -1) return;
        if (colInd < 3) {
            offset = [4,-1,1,1]
            format = "MM/dd/yyyy HH:mm:ss";
            e.range.offset(0, offset[colInd])
            .setValue(Utilities.formatDate(new Date(), "GMT+8", format));
        } else {
            setValidation(e);
        }
     }
}

答案 1 :(得分:0)

重新阅读您的问题后,我认为您的意思是仅在修改工作表onEdit时才执行Check

在这种情况下,您应该只输入if语句以确保编辑在正确的工作表中进行。因此,使用您的原始代码将类似于:

function onEdit(e) {    
  var cols, colInd, offset, format;   
  if(e.range.getSheet().getName() = 'Check'){
    cols = [7,13,14,16];
    colInd = cols.indexOf(e.range.columnStart);
    if (colInd == -1) return;
    if (colInd < 3) {
      offset = [4,-1,1,1];
      format = "MM/dd/yyyy HH:mm:ss";
      e.range.offset(0, offset[colInd])
      .setValue(Utilities.formatDate(new Date(), "GMT+8", format));
    } else {
      setValidation(e);
    }
  }
}