0

我一直在编写一个脚本,该脚本允许我修改最近创建的电子表格。
这是我想要做的:

  1. 创建新电子表格
  2. 将当前电子表格中的工作表复制到新电子表格中
  3. 在新电子表格中替换新工作表的名称。

这是我创建的代码,但是当我运行它时,我可以创建电子表格,但原始电子表格中的工作表不会复制到新的电子表格中。基本上我可以创建电子表格,但一旦创建,我就无法写在新的。有任何想法吗??”

function dashboards(){
   //creates dashboards
   var ss1 = SpreadsheetApp.getActiveSpreadsheet();
   ss1.setActiveSheet(ss1.getSheetByName("Sheet1"));
   var ssNew = SpreadsheetApp.create("New spreadsheet").getId();
   var ss2 = SpreadsheetApp.openById(ssNew).setActiveSpreadsheet;
   ss1.copyTo(ssNew)
   ssNew.renameActiveSheet("newsheet");;
}
4

1 回答 1

1

看起来你非常接近,但我无法遵循所有变量引用。这是对我有用的重写版本。

我认为主要问题可能是第setActiveSpreadsheet6 行中的挂起调用可能破坏了您的变量分配。

另一个关键点是,您可以从copyTo调用中获取对新电子表格中工作表的引用

function dashboards(){
   var ss1 = SpreadsheetApp.getActiveSpreadsheet();
   var origSheet = ss1.getSheetByName('Sheet1');
   var ssNew = SpreadsheetApp.create('New spreadsheet').getId();
   var ss2 = SpreadsheetApp.openById(ssNew);
   var newSheet = origSheet.copyTo(ss2);
   newSheet.setName('newsheet');
}
于 2012-11-06T00:18:48.573 回答