2013-04-25 107 views
2

我目前正在Google Apps中创建一个电子表格,用于记录客户端出席情况。电子表格包含12张表格。每张表代表一月中的一个月,因此表一表示一月,表二表示二月等。Google Apps电子表格根据当前日期打开特定表格(月)

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

例如,如果当前日期在哪里18/02/2013然后电子表格会自动打开与工作表2(2月)焦点。

我认为我在使用SpreadsheetApp.setActiveSheet时是正确的,但我不知道如何使用Google App脚本捕获日期,具体为哪个月。

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

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

任何帮助将受到欢迎。

+0

被这一个的副本不远处:http://stackoverflow.com/questions/18612195/unable-to-active-a折叠按姓名/ 18612733#18612733 – 2013-09-10 19:44:49

回答

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); 
}; 
相关问题