繁体   English   中英

在非活动工作表上重新加载

[英]Reloading on an inactive sheet

我正在使用谷歌脚本在谷歌表格上制作会议室预订系统。 我编写了代码来每天重新加载活动表,以便更新日期。 但是,非活动工作表(有多个工作表,每个不同房间一个)不会重新加载,除非您在该工作表上打开,或者在其上打开 go 然后刷新。 我想对其进行编码,以便即使它们不是活动工作表,工作表也会自动更新。 我该怎么做? 我会使用触发器吗(我不精通触发器..)。 这是我现在正在使用的代码。

function createDateSlots() {
   var sheet = SpreadsheetApp.getActiveSheet()
   //var roomReservation = sheet.getSheetByName("Counseling Suites");
   if (sheet.getName() == "Counseling Suites" || sheet.getName() == "Interprofessional Health Suites") {
    var date = new Date();
    sheet.getRange(1, 5).setValue('SCROLL TO DATE:');
    //Creating the location for the column names 
    var startRow = 4;
    var boldRange = sheet.getRange("A" + startRow + ":H" + startRow);

    boldRange.setBackground("#b8aeae").setBorder(false, false, true, false, false, false,'black', SpreadsheetApp.BorderStyle.SOLID_THICK);
    //Naming each of the columns
    sheet.getRange(startRow, dateCol).setValue('DATE');
    sheet.getRange(startRow, startCol).setValue('Start Time:');
    sheet.getRange(startRow, stopCol).setValue('Stop Time:');
    sheet.getRange(startRow, resByCol).setValue('Reserved By:');
    sheet.getRange(startRow, phoneCol).setValue('Phone Number:');
    sheet.getRange(startRow, emailCol).setValue('Email Address:');
    sheet.getRange(startRow, userCol).setValue('Faculty/ Staff/ Student');
    sheet.getRange(startRow, reasonCol).setValue('Reason for reservation:');

解释:

使用getSheets方法获取所有工作表,并使用循环(在本例中为forEach )迭代工作表对象。

为每张纸执行的解决方案:

function createDateSlots() {
   
  var sheets = SpreadsheetApp.getActive().getSheets(); // get all sheets
  sheets.forEach(sheet=>{
    if(sheet.getName()!='instructions'){ // put the name of the sheet you want to exclude         
    var date = new Date();
    sheet.getRange(1, 5).setValue('SCROLL TO DATE:');
    //Creating the location for the column names 
    var startRow = 4;
    var boldRange = sheet.getRange("A" + startRow + ":H" + startRow);

    boldRange.setBackground("#b8aeae").setBorder(false, false, true, false, false, false,'black', SpreadsheetApp.BorderStyle.SOLID_THICK);
    //Naming each of the columns
    sheet.getRange(startRow, dateCol).setValue('DATE');
    sheet.getRange(startRow, startCol).setValue('Start Time:');
    sheet.getRange(startRow, stopCol).setValue('Stop Time:');
    sheet.getRange(startRow, resByCol).setValue('Reserved By:');
    sheet.getRange(startRow, phoneCol).setValue('Phone Number:');
    sheet.getRange(startRow, emailCol).setValue('Email Address:');
    sheet.getRange(startRow, userCol).setValue('Faculty/ Staff/ Student');
    sheet.getRange(startRow, reasonCol).setValue('Reason for reservation:');
    SpreadsheetApp.flush();    
  }});
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM