考虑下面的代码:它设置值然后在一个范围内设置函数,但是它会覆盖已设置的值。
function test() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var range = ss.getRange("A1:B2");
var values = [["First","row"],["Second","row"]];
var formulas = [["=42",""],["","=77"]];
range.setValues(values);
range.setFormulas(formulas);
}
为什么设置空公式会覆盖任何设定值,反之亦然?想知道是否有办法跳过设置单个数组元素。我尝试过“未定义的”#39;并且没有运气而且没有运气。
为了防止覆盖数据,必须获得需要值公式的特定区域的范围,这给我写的脚本增加了额外的层复杂性。
感谢阅读!
答案 0 :(得分:5)
我认为setValues()可以用来设置公式可以大大减轻这个问题。
var range = ss.getRange("A1:B2");
var values = range.getValues();
// process the array, eg values[0][0] = "=42";
range.setValues();
答案 1 :(得分:0)
这当然解释了为什么设置值会覆盖公式,但如果有一种方法将getValuesandFormulas组合成一个数组,它会不会更好?
如果(像我一样)你被分心到getValues和getFormulas,请意识到你可以在范围之间使用copyTo来复制整个内容!