Google Apps脚本setFormula如何为包含变量的工作表单元格设置公式

时间:2020-06-28 03:22:52

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

我的计划是通过使用Google Spreadsheet中的函数DATEDIF计算两个给定日期之间的天数,该函数必须来自Google Apps脚本。我可以从下面得到它。

sheet.getRange(x,10).setFormula('datedif(K32,L32,"d")');

但是,由于每当GAS调用电子表格时,该行都会随着AppendRow的增加而增加,因此我尝试使用变量x来获取最后一行。它使我知道目标行在哪里。我的麻烦是我不能让setFormula如下使用变量,其中startdue是2个给定日期的单元格的A1Notation。

sheet.getRange(x,9).setFormula('datedif([start],[due],"d")');

我的代码如下。

   var x = sheet.getLastRow();
   
   sheet.getRange(x,11).setValue("2020/05/20");
   sheet.getRange(x,12).setValue("2020/07/21");
    
   start = sheet.getRange(x,11).getA1Notation();
   due = sheet.getRange(x,12).getA1Notation();  
    
   
  sheet.getRange(x,9).setFormula('datedif([start],[due],"d")');

  sheet.getRange(x,10).setFormula('datedif(K32,L32,"d")');

1 个答案:

答案 0 :(得分:1)

答案:

您需要将单元格的A1表示法连接到setFormula()中的字符串中。

代码修改:

从V8开始,您可以在Google Apps脚本中使用模板文字。您可以按照以下步骤进行操作:

start = sheet.getRange(x,11).getA1Notation();
due = sheet.getRange(x,12).getA1Notation();  

sheet.getRange(x,9).setFormula(`datedif(${start},${due},"d")`);

我希望这对您有帮助!

参考文献: