我的计划是使用Google电子表格中的函数DATEDIF
计算2个给定日期之间的天数,并且该函数必须来自Google Apps Script。我可以在下面得到它。
sheet.getRange(x,10).setFormula('datedif(K32,L32,"d")');
但是,由于每当 GAS 调用电子表格时,该行都会增加 AppendRow,因此我尝试使用变量 x 来获取最后一行。它让我知道目标行在哪里。我的麻烦是我不能让 setFormula 使用变量,如下所示,其中start
和due
是 2 个给定单元格的 A1 表示法和日期。
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")');
答案:
您需要将单元格的 A1 表示法连接到setFormula()
中的字符串中。
代码修改:
从V8开始,您可以在Google Apps Script中使用模板文字。您可以按如下方式执行此操作:
start = sheet.getRange(x,11).getA1Notation();
due = sheet.getRange(x,12).getA1Notation();
sheet.getRange(x,9).setFormula(`datedif(${start},${due},"d")`);
引用:
模板- 文字(模板字符串( - JavaScript |多核