如何在多个Google表格中使用多个OnEdit功能

安赫特·夏尔马

我目前正在一个项目中,尝试根据用户在Google工作表中所做的更改填写“上次更新”日期。

我在同一工作簿中有三个Google工作表。

我遵循了一个教程教程可以帮助我获得所需的信息,当我在工作表中使用相同的代码时,它将使用我阅读的OnEdit的最后一个代码。

如下所示。如果用户更新了工作表1中的列(Col)1-17,则将最后更新的内容添加到行中的列18。

注意:以下代码全部在1个.gs文件中。

预期的行为:

当我进入工作表1时,根据工作表1中指定的更改和范围更新Col 18(最新更新)。如果在工作表2中,则为该处的相应范围执行相应操作。与工作表3相同。

请参见下面的代码:

function onEdit(x) {

  addTimeStampGlossary(x);
  
}

function onEdit(y) {
  
 addTimeStampTables(y);
  
}

function onEdit(z) {
  
 addTimeStampFields(z);
  
}


function addTimeStampGlossary(x){
  // variables
  var startRow = 2;
  var ws = "Sheet1";

  //get modified row and column
  var row = x.range.getRow();
  var col = x.range.getColumn();

  if(col === 1 || col === 2 || col === 3 || col === 4 || col === 5 || col === 6 || col === 7 || col === 8 || col === 9 || col === 10 || col === 11 || col === 12 || col === 13 || col === 14 || col === 15 || col === 16 || col === 17 && row >= startRow && x.source.getActiveSheet().getName() === ws ){
    x.source.getActiveSheet().getRange(row,18).setValue(new Date());
  }
 
 }
 
 function addTimeStampTables(y){
  // variables
  var startRow = 2;
  var ws = "Sheet2";

  //get modified row and column
  var row = y.range.getRow();
  var col = y.range.getColumn();

  if(col === 1 || col === 2 || col === 3 || col === 4 || col === 5 || col === 6 || col === 7 || col === 8 || col === 9 || col === 10 || col === 11 || col === 12 || col === 13 || col === 14 || col === 15 || col === 16 || col === 17 || col === 18 || col === 19 && row >= startRow && y.source.getActiveSheet().getName() === ws ){
    y.source.getActiveSheet().getRange(row,20).setValue(new Date());
  }
 
 }
 
  function addTimeStampFields(z){
  // variables
  var startRow = 2;
  var ws = "Sheet3";

  //get modified row and column
  var row = z.range.getRow();
  var col = z.range.getColumn();

  if(col === 1 || col === 2 || col === 3 || col === 4 || col === 5 || col === 6 || col === 7 || col === 8 || col === 9 || col === 10 || col === 11 || col === 12 || col === 13 || col === 14 || col === 15 || col === 16 && row >= startRow && z.source.getActiveSheet().getName() === ws ){
    z.source.getActiveSheet().getRange(row,17).setValue(new Date());
  }
 
 }
马里奥斯

您不能具有多个onEdit功能。

仅保留一项onEdit功能:

function onEdit(e) {
  addTimeStampGlossary(e);
  addTimeStampTables(e);
  addTimeStampFields(e);
}

以及其他功能:

function addTimeStampGlossary(x){
  // variables
  var startRow = 2;
  var ws = "Sheet1";

  //get modified row and column
  var row = x.range.getRow();
  var col = x.range.getColumn();

  if(col === 1 || col === 2 || col === 3 || col === 4 || col === 5 || col === 6 || col === 7 || col === 8 || col === 9 || col === 10 || col === 11 || col === 12 || col === 13 || col === 14 || col === 15 || col === 16 || col === 17 && row >= startRow && x.source.getActiveSheet().getName() === ws ){
    x.source.getActiveSheet().getRange(row,18).setValue(new Date());
  }
 
 }
 
 function addTimeStampTables(y){
  // variables
  var startRow = 2;
  var ws = "Sheet2";

  //get modified row and column
  var row = y.range.getRow();
  var col = y.range.getColumn();

  if(col === 1 || col === 2 || col === 3 || col === 4 || col === 5 || col === 6 || col === 7 || col === 8 || col === 9 || col === 10 || col === 11 || col === 12 || col === 13 || col === 14 || col === 15 || col === 16 || col === 17 || col === 18 || col === 19 && row >= startRow && y.source.getActiveSheet().getName() === ws ){
    y.source.getActiveSheet().getRange(row,20).setValue(new Date());
  }
 
 }
 
  function addTimeStampFields(z){
  // variables
  var startRow = 2;
  var ws = "Sheet3";

  //get modified row and column
  var row = z.range.getRow();
  var col = z.range.getColumn();

  if(col === 1 || col === 2 || col === 3 || col === 4 || col === 5 || col === 6 || col === 7 || col === 8 || col === 9 || col === 10 || col === 11 || col === 12 || col === 13 || col === 14 || col === 15 || col === 16 && row >= startRow && z.source.getActiveSheet().getName() === ws ){
    z.source.getActiveSheet().getRange(row,17).setValue(new Date());
  }
 
 }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Google Apps脚本中使用本机电子表格功能?

如何在熊猫中使用多个列映射功能?

如何在Caffe中使用C ++从多个图层获取功能

如何在Google电子表格中使用替换功能和查询功能

如何在一个事件中使用多个功能?

在多个表格行中使用keyup功能

如何在多个驱动程序中使用功能?

如何在单行中使“显示:表格”显示的多个div

如何在多个ViewController中使用locationManager()

包围多个onEdit功能

在Google表格公式中使用RegEx提取多个值

如何在Google表格中使用importhtml从同一电子表格中的多个URL连续导入表?

如何在Google表格中使用GETPIVOTDATA

如何在Google表格中的Arrrayformula中使用查询功能?

如何在Google表格中使用查询功能在多个WHERE AND和OR条件下进行数据透视

如何在一个功能中使用多个ID

如何在listchars中使用多个空格?

如何在单个html dom事件中使用多个功能?

弹性地在Google表格中使用多个过滤器功能

如何在查找中使用多个参数?

使用多个 onEdit 函数

在 Google 表格查询中使用多个匹配项时如何限制返回的条目数

如何使用 Google 表格中的查询功能使用多个 where 条件进行透视

有谁知道如何在 Google 表格查询功能中使用选项子句?

Google 表格脚本:在 Indexof 中使用多个值

在 Google 表格中使用多个条件过滤值

如何使用 onEdit(e) 函数为 Google 电子表格中的多个子表获取日期和时间

如何在 Google 电子表格中使用 where 查询过滤多个条件

如何在 PostgreSQL 中使用多个分区