【问题标题】:setFormulas won't skip empty array elements, over-writes valuessetFormulas 不会跳过空数组元素,覆盖值
【发布时间】:2014-09-30 22:53:18
【问题描述】:

考虑下面的代码:它设置值,然后在一个范围内设置函数,但是它会覆盖已设置的值。

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

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

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

感谢阅读!

【问题讨论】:

    标签: google-apps-script


    【解决方案1】:

    我认为 setValues() 可用于设置公式这一事实可以在很大程度上缓解这个问题。

      var range = ss.getRange("A1:B2");
      var values = range.getValues();
    
      // process the array, eg values[0][0] = "=42";
    
      range.setValues();
    

    【讨论】:

      【解决方案2】:

      这当然解释了为什么设置值会覆盖公式,但是如果有办法将值和公式一起放入一个数组中不是更好吗?

      如果(像我一样)您被 getValues 和 getFormulas 分心,请意识到您可以在范围之间使用 copyTo 来复制整体内容!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-07
        • 1970-01-01
        相关资源
        最近更新 更多