我不太了解如何使用e.oldValue

时间:2019-08-20 14:37:18

标签: google-apps-script google-sheets

编辑:我用一个循环对函数进行了修改,但是它填写了“未定义的值”。谁能阐明为什么会这样?

我已经为朋友设置了计划应用程序。她经营一家宠物托管公司,您每8次访问就有一次免费访问。我已经进行了设置,因此每次同一个人进行约会时,访问次数都会添加到之前的访问次数中,然后除以8,然后四舍五入。因此,假设您安排6个约会,然后再安排6个约会,则总共将增加12个。向下舍入的12/8将为1,因此这是一次免费访问(此操作在工作表内完成)。我正在尝试弄清楚如何将旧值存储在新单元格中,因此,在进行新约会时,例如总共进行了24次访问,它应该显示3次免费访问减去上次获得的访问次数安排。

我尝试制作一个在编辑时触发的函数,我将粘贴以下代码:

function freeVisits(e){
  var range = e.range;
  var s = e.source.getActiveSheet();
  if(s.getName() == "Form responses" && range.getColumn() == 9){
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var targetSheet = ss.getSheetByName("Totals");
    for(var i = 0; i < targetSheet.getActiveRange().getLastColumn() + 6; i++){
         var cell = targetSheet.getRange(6+i, 5).getValue();
         var oldCell = cell.oldValue;
         targetSheet.getRange(6+i, 6).setValue(oldCell);
    }
  }
}

1 个答案:

答案 0 :(得分:0)

the documentation中可以看到,oldValue是已编辑单元格中的前一个值;如果其中有一个带有4的单元格并且您对其进行编辑,则e.oldValue将保留4