1

我对 googledocs 和脚本很陌生,真的可以帮上忙。

我需要一个脚本:

  • 复制第一张纸(按顺序排列第一张)
  • 将副本放在第一个位置
  • 将副本重命名为当前日期
  • 删除重复文件中第一行以下的所有行(例如第 2 到第 300 行)

我曾尝试过,但它只完成了部分工作……而且似乎无法正常工作。这就是我得到的:

function myFunction() { 
  SpreadsheetApp.getActiveSpreadsheet().duplicateActiveSheet();
  SpreadsheetApp.getActiveSpreadsheet().renameActiveSheet("New Sheet");
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0]; 
  // Rows start at "1" - this will delete the first two rows 
  sheet.deleteRows(2, 100); 
}

非常感谢您阅读!

4

1 回答 1

0

这里的诀窍是跟踪哪些电子表格是“活动的”——因为你想复制第一张工作表,你需要确保第一张工作表是“活动的”。(你不能只是假设它是。)

复制第一张工作表后,新工作表将处于“活动状态”。这很有用,因为您想要执行的某些操作仅在“活动”工作表上操作。

function myFunction() { 
  // Make the first sheet active in the active workbook
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  ss.setActiveSheet(ss.getSheets()[0]);

  // duplicate the 1st sheet (1st in order)
  var newSheet = SpreadsheetApp.getActiveSpreadsheet().duplicateActiveSheet();

  // place the duplicate in the first positions
  ss.moveActiveSheet(1);

  // rename the duplicate to current date
  newSheet.setName((new Date()).toDateString());

  // delete all the rows below the first one in the duplicate file (e.g. 2nd to 300th row)
  var lastRow =  newSheet.getLastRow();
  newSheet.deleteRows(2, lastRow-1);
}
于 2013-07-31T21:26:26.210 回答