我有一个范围很广的电子表格:A2-AJ1900。有些列有静态值,有些列有公式,有些列有混合,所以有时是静态值,有时是公式。我想用脚本更新每一行并节省时间我想用所有值和公式构建一个数组,然后我想通过一次调用将该数组写入电子表格。那可能吗?或者我必须将该数组拆分为静态值和公式列吗?我认为这不是一个大问题,但我该如何处理混合列呢?这将是非常复杂的,如果我用一个调用更新每个单元格,脚本将需要太长时间。这种情况是不是有办法让它变得更好?
答案 0 :(得分:2)
对setValues
的一次调用就足够了,因为如果将公式作为字符串给出,它也会设置公式,例如"=A2+A3"
。例如:
var range = SpreadsheetApp.getActiveSheet().getRange("E2:E7");
range.setValues([[4], [5], ["=E2*E3"], ["=SUM(E2:E4)"], ["text"], ["=E6 & E5"]]);
使用单独的调用,一个用于setValues
,一个用于setFormulas
,这将是有问题的,因为一个会覆盖另一个。您必须为第二个调用使用较小的范围(可能是多个范围),使它们适应前一个调用结果之间的间隙。这很麻烦且效率低下。