2014-12-13 104 views
0

正如您可能會從我的下面嘗試中意識到的那樣,Google腳本不是我最大的優勢。

我們所有的學校獎勵/制裁目前都進入谷歌表格。在每學期結束時,我想將許多這些表格歸檔到新的工作簿/電子表格中。發生這種情況時,他們只需要評估副本。

我可以得到這個代碼適用於任何單個工作表,但對於for循環不是很熟悉,所以無法將所有四個工作表合併到一起。
感謝您的專家可能提供的任何幫助!
`將Google表格粘貼到新電子表格

> function copySheetValues() 
 
{ 
 
  var source = SpreadsheetApp.getActiveSpreadsheet(); 
 
    var sheetname = ['tally', 'commendations', 'detentions', 'omegas']; 
 
    for (var i=0, i<3, i++) 
 
    var sheet = source.getSheetByName(sheetname[i]); 
 
    sheet.activate(); 
 
  var sourcename = sheet.getSheetName(); 
 
  var sourceDataRange = sheet.getDataRange(); 
 
  var sourceSheetValues = sourceDataRange.getValues(); 
 
  var sourceRows = sourceDataRange.getNumRows(); 
 
    var sourceColumns = sourceDataRange.getNumColumns(); 
 
    var ssNew = SpreadsheetApp.create('Archive'); 
 
    var url = (ssNew.getUrl()); 
 
    var destination = SpreadsheetApp.openByUrl(url); 
 
    
 

 
    destination.insertSheet(sourcename, 0); 
 
    destination.getDataRange().offset(0, 0, sourceRows, sourceColumns).setValues(sourceSheetValues); 
 
}

`

回答

0

採用不同的方法,你可以看到,如果這對你的作品?

function backup() { 

var ss = SpreadsheetApp.getActiveSpreadsheet(); 
var bs = SpreadsheetApp.openById(ss.copy('Archive').getId()); 
var sheets = ['tally', 'commendations', 'detentions', 'omegas']; 
SpreadsheetApp.flush(); 
var bsl = bs.getSheets().forEach(function (s) { 
if(sheets.indexOf(s.getName()) !== -1) { 
s.getDataRange().copyTo(s.getDataRange(), { 
      contentsOnly: true 
     }); 
} else { 
bs.setActiveSheet(s); 
bs.deleteActiveSheet(); 
} 
}); 
} 
相關問題