有人可以帮我使用for循环或其他什么来大幅缩短这段代码的长度吗?我只需要将一些数据从datAgg
表复制到f5
表,但我想使用数组和for循环来完成。我试过不同的时间,但它总是给我错误
function regValori(){
var datAgg =
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("dati
aggiornati");
var f5 =
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Foglio5");
var score1 = datAgg.getRange("P2").getValue(); // we want to store
this
//collecting names and values
var Cname1=datAgg.getRange("A2").getValue();
var score2 = datAgg.getRange("P3").getValue();
var Cname2 = datAgg.getRange("A3").getValue();
var score3 = datAgg.getRange("P4").getValue();
var Cname3 = datAgg.getRange("A4").getValue();
var score4 = datAgg.getRange("P5").getValue();
var Cname4 = datAgg.getRange("A5").getValue();
var score5 = datAgg.getRange("P6").getValue();
var Cname5 = datAgg.getRange("A6").getValue();
// get the row number where to put data
// in correspodance with today date
var riga = f5.getRange(2, 2).getValue();
f5.getRange(2,3).setValue(Cname1);
f5.getRange(2,4).setValue(Cname2);
f5.getRange(2,5).setValue(Cname3);
f5.getRange(2,6).setValue(Cname4);
f5.getRange(2,7).setValue(Cname5);
// this one to put the value for every day
f5.getRange(riga, 3).setValue(score1);
f5.getRange(riga, 4).setValue(score2);
f5.getRange(riga, 5).setValue(score3);
f5.getRange(riga, 6).setValue(score4);
f5.getRange(riga, 7).setValue(score5);
}
答案 0 :(得分:0)
我这样做
function regValori(){
var datAgg = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("datiaggiornati");
var f5 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Foglio5");
var riga = f5.getRange(2, 2).getValue();
for (var i = 2; i <= 6; ++i) {
f5.getRange(riga, i + 1).setValue(datAgg.getRange("P" + i).getValue());
f5.getRange(2, i + 1).setValue(datAgg.getRange("A" + i).getValue());
}
}
您需要做的就是让索引i
从最低值到最高值,并为getRange()
构建字符串。也不需要这么多中间变量或数组,因为你可以在一个循环中完成每个操作。