2016-02-12 59 views
0

我有一個涵蓋一個月的谷歌電子表格(下面的鏈接),然後我插入一張表,爲下個月只有一些範圍作爲結轉數據。谷歌腳本 - 多個範圍的插入表

https://docs.google.com/spreadsheets/d/12zJnE1J5zbnArqMUeFfq2Kk5zvyqxXA0Tgp4Y7Efzes/edit?usp=sharing

我會做的是插入多個範圍不同的範圍,使namestat將被放置在C3:U4和結轉將被放置在C17:C18,日期(+7)的B5,等等

function TDCopyV3() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var s = ss.getActiveSheet(); 
    var sheetName = ss.getName(); 
    var namestat = ss.getRange("C3:U4").getValues(); 
    var carryover = ss.getRange("C17:U18").getValues(); 
    var date = ss.getRange("B13").getValue(); 
    var templateSheet = ss.getSheetByName('Template1'); 
    ss.insertSheet(sheetName +1, 0, {template: templateSheet}).getRange(3,3,namestat.length,namestat[0].length).setValues(namestat); 
} 

這是我陷入困境,因爲我似乎無法找到任何插入多個部分範圍。我試圖鏈接另一個getRange和setData,但這隻會導致錯誤。

ss.insertSheet(sheetName +1, 0, {template: templateSheet}).getRange(3,3,namestat.length,namestat[0].length).setValues(namestat).getRange(3,25,carryover.length,carryover[0].length).setValues(carryover); 

回答

0

試試這個。你必須引用插入的shee來設置它的值:

function TDCopyV3() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var s = ss.getSheetByName("May 2014"); 
    var sheetName = ss.getName(); 
    var namestat = s.getRange("C3:U4").getValues(); 
    var carryover = s.getRange("C17:U18").getValues(); 
    var date = s.getRange("B13").getValue(); 
    var templateSheet = ss.getSheetByName('Template1'); 
    ss.insertSheet(sheetName +1, 0, {template: templateSheet}) 
    var shnew =ss.getSheetByName("Copy of HoursDemo1") 
    var shnewVal= shnew.getRange(3,3,namestat.length,namestat[0].length).getValues() 
    shnew.getRange(3,3,namestat.length,namestat[0].length).setValues(namestat) 
    shnew.getRange(17,3,carryover.length,19).setValues(carryover); 
} 
+0

謝謝你的幫助和解釋,它給了一個很好的開始地方添加其他需要的項目。再次感謝。 – PDX