自动日期复制选项卡



首先,我知道一点Javascript,但我不知道我会从哪里开始。我做了很多搜索,但没有找到任何接近我想要的东西。我在谷歌表格中有一个每日任务列表,我想在右键单击并选择复制时复制每张表格的下一天日期。这可能吗?可以用另一种方式完成吗?

无法更改上下文菜单的"重复"项的作用。但是可以使用以下脚本通过菜单提供另一种复制方式。每次打开电子表格时,它都会添加一个新菜单项"自定义>新的一天"。调用此项将复制当前工作表,并将递增的日期作为名称,前提是该名称遵循 ISO 格式 yyyy-mm-dd。

一般参考:从Google Apps Script开始。

function duplicate() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = SpreadsheetApp.getActiveSheet();
  var sheetDate = new Date(sheet.getName() + 'T00:00:00.000Z');
  if (!sheetDate.valueOf()) {
    Browser.msgBox('Did not recognize "' + sheet.getName() + '" as a date. Use the format yyyy-mm-dd.');
  }
  else {
    sheetDate.setDate(sheetDate.getDate() + 1);
    var newSheetName = sheetDate.toISOString().slice(0,10);
    ss.insertSheet(newSheetName, {template: sheet});
  }
}
function onOpen() {
  SpreadsheetApp.getActiveSpreadsheet().addMenu("Custom", [{name: "New Day",  functionName: "duplicate"}]);
}

带有+ 'T00:00:00.000Z'位之所以存在,是因为Google Apps Script中日期解析的实现很特殊:它需要时间部分,包括毫秒。

最新更新