1

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

我在 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");

非常感谢您的帮助。

4

1 回答 1

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

于 2013-04-10T06:16:43.440 回答