脚本不能一直运行

时间:2017-10-12 20:41:31

标签: google-apps-script google-sheets

我有以下脚本需要在相关日期结束时运行,我试图让它在计时器上运行,我无法解决。我有5张床单,用于安排员工的一天中的不同部分。在一天结束时,我需要将它发送到一张主表,该表符合工作时间和各种任务。我的问题是: - 1)我有一张空白的Google工作表,里面有5张纸+ 1张隐藏纸。这需要在其副本的当天发送到主副本。名称,如果可能自动。 2)它们可以提前3个月制作,并且不希望它每天发送空白备份。 3)当我按下" backup"任何新创建的工作表上的按钮我必须授权该脚本。

有没有办法不必在新电子表格上授权脚本。有没有人有更好的自动化想法?

{{1}}

1 个答案:

答案 0 :(得分:0)

nameofSpreadsheet放在菜单.addItem('Name','nameOfSpreadsheet')中对我没有意义。它没有任何成就,因为没有办法看到回报。

我尝试重写你的备份功能。我希望它有所帮助。

function dataBackup() 
{
  var inputSS = SpreadsheetApp.getActiveSpreadsheet();
  var archiveSS = SpreadsheetApp.openById('146WU8RghfFqlCpCSX7n6kBAKOyxcpVKt14yhVfvYz-g');
  var sheetNames = ['AM trip', 'PM trip', 'Pool / Beach', 'Night Dive'];
  for (var i=0; i<sheetNames.length; i++) 
  {
    var inputSheet = inputSS.getSheetByName(sheetNames[i]);
    var archiveSheet = archiveSS.getSheetByName(sheetNames[i]);
    var date=new Date(inputSheet.getRange('A2').getValue());     
    var rng=inputSheet.getRange('E7:U37');
    var dataA=rng.getValues();
    var data=[];
    for(var j=0;i<dataA.length;j++)
    {
      if(dataA[j][0] && dataA[j][1])
      {
        data.push([dataA[j].splice(0,0,date)]);
      }
    }
    var dv=archiveSheet.getRange(archiveSheet.getLastRow(), 1).getValue();
    date=(typeof(dv)!='undefined')?dv:'No Date Found';
    if (data.length>0) 
    {
      archiveSheet.insertRowsAfter(archiveSheet.getLastRow(), data.length);
      archiveSheet.getRange(archiveSheet.getLastRow() + 1, 1, data.length, rng.getWidth()+1).setValues(data);
    } 
    else 
    {
      archiveSheet.insertRowsAfter(archiveSheet.getLastRow(), 1);
      archiveSheet.getRange(archiveSheet.getLastRow() + 1, 1, 1, 2).setValues([[date, 'No Data']]);
    }
  }
}