Google表执行脚本Onedit



我是Google表脚本的新手,并试图执行以下操作。我有2列:包含启动时间代码和d包含末端时间代码的C。第三列(f)包含由开始时代和结束时间代码产生的膜提示的长度。由于时间代码是由脚本产生的,因此包含结果的单元格不能导出到另一种格式。因此,我正在尝试创建一个第四列,该列将从f列作为值打印结果。我设法编写了一个可以做到的脚本。看起来这样:

function getRangeValuesEP01() {
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var range = ss.getSheetByName("EP01").getRange('F3:F100').activate();
 var values = range.getValues();
 return values;
}; 

问题是,当我编辑C或D中的任何时间编码时,它不会自动执行。

所以我尝试了:

function onEdit(e) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet()
  var sheetName = sheet.getName();
  if ( sheetName == "EP02" || sheetName == "EP01" ) {
    var range = sheetName.getRange('F3:F100').activate();
    var r = sheetName.getActiveRange();
  if (r.getColumn() == 4 ) {
      var col = r.getColumn();
      if ( col >=  3 && col <= 100 ) {
        sheetName.getRange(r.getRow(),5);
        var values = range.getValues();
      }
    }
  }
 }

它没有给我任何错误,但也没有任何做法。这可能没有真正的意义。正如我所说,我是这些脚本的新手。而且它不考虑在两个列C和D中寻找编辑。哦,或者足以查看F,因为当更改C或D时已经更新了结果?

也许有人可以将我推向正确的方向?

阅读注释:

function myonEdit(e) 
{
  var sheet=e.source.getActiveSpreadsheet();
  var sheetName=sheet.getName();
  if(sheetName=="EP02" || sheetName=="EP01") 
  {
    var r=sheet.getRange('F3:F100');//I made changes up to this point but the next line makes no sense so rethink it in light of changes
    if (r.getColumn()==4)//This line doesn't make any sense because you set range to F3:F100 F is column 6 so it will never be 4 
    {
      var col= r.getColumn();
      if ( col >=  3 && col <= 100 ) 
      {
        sheetName.getRange(r.getRow(),5);
        var values = range.getValues();
      }
    }
  }
}

相关内容

最新更新