Non*_*ono 5 google-sheets google-apps-script
我有一个范围很大的电子表格:A2-AJ1900。有些列具有静态值,有些列具有公式,有些列具有混合值,因此有时是静态值,有时是公式。我想用脚本更新每一行并节省时间,我想构建一个包含所有值和公式的数组,然后我想通过一次调用将该数组写入电子表格。那可能吗?或者我必须将该数组拆分为静态值和公式列吗?我认为这不会是一个大问题,但是我应该如何处理混合列呢?如果我通过一次调用更新每个单元格,这将非常复杂,并且脚本将需要太长的时间。对于这样的情况,难道就没有办法改善吗?
小智 5
一次调用setValues就足够了,因为如果将公式作为字符串给出,例如 ,它还会设置公式"=A2+A3"。例子:
var range = SpreadsheetApp.getActiveSheet().getRange("E2:E7");
range.setValues([[4], [5], ["=E2*E3"], ["=SUM(E2:E4)"], ["text"], ["=E6 & E5"]]);
Run Code Online (Sandbox Code Playgroud)
使用单独的调用(一个 forsetValues和一个 for setFormulas)会出现问题,因为一个调用会覆盖另一个调用。您必须为第二次调用使用较小的范围(可能是多个范围),将它们放入前一次调用结果之间的间隙中。这是麻烦且低效的。