使用AppScript仪表板自动执行时,AppScript无法执行

时间:2019-07-09 10:38:54

标签: google-apps-script google-sheets

我正在运行一个脚本,该脚本可以获取最新的图纸并进行复制。我想在每个星期二和星期五运行此程序。我已将脚本设置为使用App脚本仪表板自动触发。但是,脚本失败,并显示错误“请先选择一个活动工作表”

如果我从脚本中运行代码,则可以正常工作。我猜这是因为文件已打开并且活动表是我选择的文件。

这是我的代码:

function createNewSheet() {

  //Calcualte tomorrow's date
  var today = new Date();
  var tomo = new Date();
  tomo.setDate(today.getDate()+1);
  var SheetName = tomo.toLocaleDateString();
  Logger.log(SheetName);

  //Duplicate sheet and set the name to tommorrow's date
  activeSheet = SpreadsheetApp.getActiveSpreadsheet();
  Logger.log(activeSheet.getName());
  activeSheet.duplicateActiveSheet();
  newactiveSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  newactiveSheet.setName(SheetName);

}

我想知道我需要在代码中进行哪些更改,以确保自动化能够正常运行而不会出错。

1 个答案:

答案 0 :(得分:0)

您可以尝试以下代码吗?

function createNewSheet() {

  //Calcualte tomorrow's date
  var today = new Date();
  var tomo = new Date();
  var yesterday = new Date();
  yesterday.setDate(today.getDate()-1);
  tomo.setDate(today.getDate()+1);
  var SheetName = tomo.toLocaleDateString();
  Logger.log(SheetName);

  //Duplicate sheet and set the name to tommorrow's date
  activeSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(yesterday).activate();
  Logger.log(activeSheet.getName());
  activeSheet.duplicateActiveSheet();
  newactiveSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  newactiveSheet.setName(SheetName);
}