减去日期谷歌电子表格脚本

时间:2013-04-09 11:05:50

标签: google-apps-script google-sheets

我有一个似乎很小的问题...

我在Google电子表格中设置了一个脚本,该脚本返回当前的月份&年份并将其放入单元格中。 (这构成了更大的工作表的一部分,所以我确实需要在脚本中执行此操作的奢侈)。我似乎无法显示上个月的情况,因为这是上个月的报告。

因此,例如,如果我想在2013年3月报告,如何使用当前日期让单元格显示,或者有更好的方法来执行此操作吗?

我目前正在这样做,但在第9行的参数列表之后,因为错误“失踪”而陷入计算“

function myFunction() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

var today_date = Utilities.formatDate(new Date(), "GMT", "MMMM yyyy");

var date = sheet.getRange("A2");
date.setValue(today_date);

date.setFormula("=EDATE("today_date",-1)");

}

或者我可以通过在Utilities.formatDate(new Date(),“GMT”,“MMMM yyyy”)中添加内容来实现;

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

正确的Javascript将是:

date.setFormula("=EDATE(" + today_date + ",-1)");

但不幸的是,这不适用于电子表格方面。你需要这样的东西才能让它发挥作用:

date.setFormula('=EDATE(VALUE("1 ' + today_date + '");-1)');

并且可能你希望它格式化为MMMM yyyy:

date.setFormula('=TEXT(EDATE(VALUE("1 ' + today_date + '");-1);"MMMM yyyy")');

话虽这么说,看起来似乎有点复杂的做法。您可以使用Javascript:

执行此操作
function monthOffset(date, months) {
  //returns the first day of the month with the required months offset
  var result = new Date();
  result.setFullYear(date.getFullYear(), date.getMonth() + months, 1);  
  return result;
}

然后在你的主要功能中使用:

var calc_date = Utilities.formatDate(monthOffset(new Date(), -1), "GMT", "MMMM yyyy");

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date

相关问题