我的计划是通过使用Google Spreadsheet中的函数DATEDIF
计算两个给定日期之间的天数,该函数必须来自Google Apps脚本。我可以从下面得到它。
sheet.getRange(x,10).setFormula('datedif(K32,L32,"d")');
但是,由于每当GAS调用电子表格时,该行都会随着AppendRow的增加而增加,因此我尝试使用变量x来获取最后一行。它使我知道目标行在哪里。我的麻烦是我不能让setFormula如下使用变量,其中start
和due
是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")');
答案 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")`);
我希望这对您有帮助!