3

我目前正在 Google Apps 中创建一个电子表格,用于记录客户出席情况。该电子表格包含 12 张工作表。每张表代表一年中的一个月,所以表一代表一月,表二代表二月,依此类推。

我正在尝试使用 On_Open 函数创建一个 Google Apps 脚本,以根据当前日期自动打开相关工作表。

例如,如果当前日期为 2013 年 2 月 18 日,则电子表格将自动打开,并以工作表 2(二月)为焦点。

我认为我在使用 SpreadsheetApp.setActiveSheet 时是正确的,但我不知道如何使用 Google App Script 捕获日期,特别是月份。

我假设脚本会像下面这样流动?

如果 Date = 18/02/2013 那么 SpreadsheetApp.setActiveSheet 2

任何帮助将不胜感激。

4

2 回答 2

4

要获取月份数,0 - 11:

var month = (new Date()).getMonth();

假设您有 { Sheet1.. Sheet12} 代表一月 - 十二月,那么这将起作用:

/**
 * Selects a monthly sheet
 */
function onOpen() {
  var month = (new Date()).getMonth();

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[month];
  ss.setActiveSheet(sheet);
};

或者,您可以按月份命名工作表,然后按名称查找相应的每月工作表。这将允许您在电子表格中拥有其他非月度工作表:

/**
 * Selects a monthly sheet
 */
function onOpen() {
  var monthTabs = [ "January", "February", "March", "April", "May", "June",
    "July", "August", "September", "October", "November", "December" ];

  var month = (new Date()).getMonth();
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName(monthTabs[month]);
  ss.setActiveSheet(sheet);
};
于 2013-09-10T18:07:40.117 回答
0

以及按周显示的代码。

我的标签上写着一周的名字。

于 2021-08-15T18:12:45.113 回答