一次设置几个“setValue”

时间:2017-04-30 13:12:42

标签: optimization google-apps-script setvalue

我有一些细胞(非相邻网)。其中每个都有一个范围名称,格式为“rLamp nn ”,如下所示。

  ss.getRangeByName("rLamp20").setValue(e.range.getValue());
  ss.getRangeByName("rLamp19").setValue(e.range.getValue());
  ss.getRangeByName("rLamp18").setValue(e.range.getValue());

我想立刻将相同的值放入其中的几个中。 (然后它们中的每一个都有一个条件格式,根据输入的内容改变单元格颜色。)

是否有更有效的方法(即更快)将相同的值设置为一组这些单元格而不是像上面那样的单个调用?

1 个答案:

答案 0 :(得分:0)

如果你有很多这样的话,你可以使用命名范围内的 nn 索引来循环.setValue()

var fName = 'rLamp';
var howManyNamedRanges = 20;
// Assuming the first NamedRange is rLamp0
for (var i=0;i<howManyNamedRanges;i++) {
  ss.getRangeByName(fName+i).setValue(e.range.getValue());    
}

如果第一个命名范围是1,或者您可以将其更改为:

var fName = 'rLamp';
var firstNamedRange = 4;
var lastNamedRange = 20;
// Assuming the first NamedRange is rLamp[n]
for (var i=firstNamedRange;i<=lastNamedRange;i++) {
  ss.getRangeByName(fName+i).setValue(e.range.getValue());    
}