2013-12-14 71 views
0

我在谷歌電子表格時,我有一個交互式的執行運行效果很好已經驗證碼:時間觸發器不會在谷歌電子表格使用CopyTo從工作

var originalSpreadsheet = SpreadsheetApp.getActive(); 
var original = originalSpreadsheet.getSheetByName("Sheet1"); 
var newSpreadsheet = SpreadsheetApp.create("New"); 
original.copyTo(newSpreadsheet); 

但是,如果我有時間運行觸發它正確創建「新」電子表格,但copyTo命令不會複製其中的任何原始電子表格。

我犯了一些錯誤嗎?

我使用Mac OS X Lion 10.7.5和Chrome。

+0

這對我有用。你應該在'New'表中查看'Sheet1的副本'。 – Chris

回答

0

正如上面評論中所述,表單副本具有新名稱,因爲在創建電子表格時默認存在Sheet1。您可以通過對代碼進行小改動來避免這種情況。請參見下面的代碼

function test(){ 
    var originalSpreadsheet = SpreadsheetApp.getActive(); 
    var original = originalSpreadsheet.getSheetByName("Sheet1"); 
    var newSpreadsheet = SpreadsheetApp.create("New"); 
    var defaultSheet = newSpreadsheet.getSheetByName('Sheet1').setName('xxx'); 
    original.copyTo(newSpreadsheet).setName('Sheet1'); 
    newSpreadsheet.deleteSheet(defaultSheet); 
} 

,或者更簡單地說,你也可以直接複製該電子表格本身(如果你想在原來的電子表格的全部內容複製)

function test(){ 
    var originalSpreadsheet = SpreadsheetApp.getActive(); 
    var newSpreadsheet = originalSpreadsheet.copy('new')  
} 

此選項將複製腳本此外,該副本是原始的「克隆」。

相關問題