我有一个似乎很小的问题...
我在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”)中添加内容来实现;
非常感谢您的帮助。
答案 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