我有一个谷歌电子表格(下面的链接),涵盖一个月,然后我在下个月插入一张表,只有少数范围作为结转数据。
https://docs.google.com/spreadsheets/d/12zJnE1J5zbnArqMUeFfq2Kk5zvyqxXA0Tgp4Y7Efzes/edit?usp=sharing
我要做的是将多个范围插入不同的范围,以便将namestat放在C3:U4中,并将遗留物放置在C17:C18中,B5中的日期(+7)等等。
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 :(得分: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);
}