Javascript 填充列时从Google脚本生成公式

Javascript 填充列时从Google脚本生成公式,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,填写Col3时,我希望自动生成公式=M%s-SUM(AD%s;AS%s;BH%s;BW%s)和=SUM(R%s;V%s;Z%s)。我的代码用于vlookup公式,但不用于求和 if (r.getRow() == lastRow && r.getColumn() == 3){ event.range.offset(0,8).setFormula(Utilities.formatString('=IFNA(vlookup($E%s;Overview!F:K;6

填写Col3时,我希望自动生成公式
=M%s-SUM(AD%s;AS%s;BH%s;BW%s)
=SUM(R%s;V%s;Z%s)
。我的代码用于vlookup公式,但不用于求和

  if (r.getRow() == lastRow && r.getColumn() == 3){
          event.range.offset(0,8).setFormula(Utilities.formatString('=IFNA(vlookup($E%s;Overview!F:K;6;false);"To complete")',event.range.rowStart,event.range.rowStart,event.range.rowStart)); // Sellsy estimate number vlookup
          event.range.offset(0,9).setFormula(Utilities.formatString('=IFNA(vlookup($E%s;Overview!F:K;4;false);"To complete")',event.range.rowStart,event.range.rowStart,event.range.rowStart)); // local currency vlookup
          event.range.offset(0,10).setFormula(Utilities.formatString('=IFNA(vlookup($E%s;Overview!F:K;5;false);"To complete")',event.range.rowStart,event.range.rowStart,event.range.rowStart)); // approved cost vlookup
          event.range.offset(0,11).setFormula(Utilities.formatString('=M%s-SUM(AD%s;AS%s;BH%s;BW%s)',event.range.rowStart,event.range.rowStart,event.range.rowStart)); // remaining to be invoiced formula
          event.range.offset(0,28).setFormula(Utilities.formatString('=SUM(R%s;V%s;Z%s)',event.range.rowStart,event.range.rowStart,event.range.rowStart)); // sum Q1 formula

   }

有人有主意吗


谢谢,

如果您想要更完整的答案,请提供更完整的示例:

function onEdit(e) {
  const sh=e.range.getSheet();

  if (e.range.rowStart==sh.getLastRow() && e.range.columnStart==3){
    e.range.offset(0,8).setFormula(Utilities.formatString('=IFNA(vlookup($E%s;Overview!F:K;6;false);"To complete")',e.range.rowStart,e.range.rowStart,e.range.rowStart));
    e.range.offset(0,9).setFormula(Utilities.formatString('=IFNA(vlookup($E%s;Overview!F:K;4;false);"To complete")',e.range.rowStart,e.range.rowStart,e.range.rowStart));
    e.range.offset(0,10).setFormula(Utilities.formatString('=IFNA(vlookup($E%s;Overview!F:K;5;false);"To complete")',e.range.rowStart,e.range.rowStart,e.range.rowStart));
  }
  if(e.range.rowStart==sh.getLastRow() && e.range.columnStart==3 && e.value) {      
    e.range.offset(0,11).setFormula(Utilities.formatString('=M%s-SUM(AD%s;AS%s;BH%s;BW%s)',e.range.rowStart,e.range.rowStart,e.range.rowStart)); // remaining to be invoiced formula
    e.range.offset(0,28).setFormula(Utilities.formatString('=SUM(R%s;V%s;Z%s)',e.range.rowStart,e.range.rowStart,e.range.rowStart)); // sum Q1 formula
  }
}

我找到了答案。我不得不添加
event.range.rowStart
,因为我认为有很多不同的列

 if (event.range.rowStart==sh.getLastRow() && event.range.columnStart==3){
    event.range.offset(0,8).setFormula(Utilities.formatString('=IFNA(vlookup($E%s;Overview!F:K;6;false);"To complete")',event.range.rowStart,event.range.rowStart,event.range.rowStart));
    event.range.offset(0,9).setFormula(Utilities.formatString('=IFNA(vlookup($E%s;Overview!F:K;4;false);"To complete")',event.range.rowStart,event.range.rowStart,event.range.rowStart));
    event.range.offset(0,10).setFormula(Utilities.formatString('=IFNA(vlookup($E%s;Overview!F:K;5;false);"To complete")',event.range.rowStart,event.range.rowStart,event.range.rowStart));
    event.range.offset(0,11).setFormula(Utilities.formatString('=IFERROR((M%s-(AD%s+AS%s+BH%s+BW%s));"To complete")',event.range.rowStart,event.range.rowStart,event.range.rowStart,event.range.rowStart,event.range.rowStart)); // remaining to be invoiced formula
    event.range.offset(0,27).setFormula(Utilities.formatString('=(R%s+V%s+Z%s)',event.range.rowStart,event.range.rowStart,event.range.rowStart)); // sum Q1 formula

你好,库珀。谢谢你的帮助。我理解您创建的const,并且我已经用您的注释更新了代码,但这仍然不起作用。不幸的是,当我运行代码时,没有创建我正在寻找的公式。我想在编辑工作表的Col3时,在特定单元格中创建一个求和公式。代码用于
vlookup
公式,但不用于求和,我不明白为什么。。。