如果复选框从FALSE更改为TRUE,则同一行中的所有公式都将替换为其计算结果

时间:2020-03-05 07:38:17

标签: google-apps-script google-sheets google-sheets-formula

如果列A上的任何单元格从FALSE变为TRUE,则该行上的所有现有公式都将替换为其计算值。

当我将复选框勾选为TRUE时,这意味着我不需要该行上的更多计算或公式,我需要的只是最终的计算值。

在我的屏幕快照中,D列中的公式为= B3 + C3,我想将公式替换为计算结果,即2

请参见screenshot

enter image description here

我到处都是,找不到脚本,请帮忙。

1 个答案:

答案 0 :(得分:2)

尝试一下:

function onEdit(e) {
  //Logger.log(JSON.stringify(e));
  //e.source.toast('Entry')
  var sh=e.range.getSheet();
  if(sh.getName()!='*********Enter Your Sheet Name***********'){return;}
  //e.source.toast('Flag0');
  if(e.range.columnStart==1 && e.value=='TRUE') {
    //e.source.toast('Flag1');
    var rg=sh.getRange(e.range.rowStart,1,1,sh.getLastColumn());
    var vA=rg.getDisplayValues()[0];
    var fA=rg.getFormulas()[0];
    //Logger.log('vA: %s fA: %s',vA,fA);
    fA.forEach(function(f,i) {
      if(f && e.range.columnStart!=i+1) {
        e.range.offset(0,i+1-e.range.columnStart).setValue(vA[i]);
      }
    });
  }
}