setFormulas不会跳过空数组元素,覆盖值

Ash*_*rke 4 google-apps-script

请考虑以下代码:它设置值然后在范围内设置函数,但是它会覆盖已设置的值.

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);
}
Run Code Online (Sandbox Code Playgroud)

为什么设置空公式会覆盖任何设定值,反之亦然?想知道是否有办法跳过设置单个数组元素.我试过'undefined'和'null没有运气.

必须获得需要值公式以防止覆盖数据的特定区域的范围,这给我正在编写的脚本增加了额外的层复杂性.

谢谢阅读!

Ada*_*amL 6

我认为可以通过setValues()可以用来设置公式来大大减轻这个问题.

  var range = ss.getRange("A1:B2");
  var values = range.getValues();

  // process the array, eg values[0][0] = "=42";

  range.setValues();
Run Code Online (Sandbox Code Playgroud)