如何将工作表复制到其他电子表格并将其移动到第一个(左)位置

时间:2016-10-13 09:44:52

标签: google-apps-script google-sheets

我正在使用我发现的脚本将活动工作表复制到文件夹中的所有其他电子表格。它工作正常,但我实际上希望将复制的表设置为其他电子表格中的第一个(最左侧)表。

我知道“moveActiveSheet”,但我似乎无法让它正常工作(我仍然是脚本新手。)。我看到的用法示例似乎是针对当前的电子表格。任何帮助将不胜感激。

当前脚本:

function onOpen() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var pasteSheet = [ {name: "Paste Sheet", functionName: "copySheet"}];
  ss.addMenu("Copy to Spreadsheets", pasteSheet);
}

function copySheet() {
  var source = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = source.getSheets()[0];
  var sourceFile = DriveApp.getFileById(source.getId());
  var sourceFolder = sourceFile.getParents().next();
  var folderFiles = sourceFolder.getFiles();
  var thisFile; 

  while (folderFiles.hasNext()) {
    thisFile = folderFiles.next();
    if (thisFile.getName() !== sourceFile.getName()){
      var currentSS = SpreadsheetApp.openById(thisFile.getId());
      sheet.copyTo(currentSS);
      currentSS.getSheets()[currentSS.getSheets().length-1].setName('THIS WAS COPIED');
    }    
  };    
}

1 个答案:

答案 0 :(得分:1)

您只需要激活工作表,然后在设置名称后在currentSS内移动工作表。

  currentSS.getSheets()[currentSS.getSheets().length-1].setName('THIS WAS COPIED').activate();
  currentSS.moveActiveSheet(1);