【问题标题】:Google Apps Spreadsheet open specific sheet based on current date (Month)Google Apps 电子表格根据当前日期(月)打开特定工作表
【发布时间】:2013-04-19 06:38:58
【问题描述】:

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

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

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

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

我假设脚本会像下面这样运行?

如果日期 = 18/02/2013 然后是 SpreadsheetApp.setActiveSheet 2

我们将不胜感激。

【问题讨论】:

标签: google-apps-script google-sheets


【解决方案1】:

要获取月份数,0 - 11:

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

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

/**
 * 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);
};

【讨论】:

    【解决方案2】:

    以及按周显示的代码。

    我的标签是星期的名称。

    【讨论】:

    • 这是问题的答案吗?我真的说不出来。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-19
    • 2022-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多