一次设置多个 "setValue"

Setting several "setValue" at once

我有一些单元格(非相邻单元格)。每个都有一个范围名称,格式为 "rLampnn",如下所示。

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

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

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

如果你有很多,你可以循环 .setValue() 使用命名范围中的 nn 索引:

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());    
}