【问题标题】:Setting setFormulas() will clear the existing data设置 setFormulas() 将清除现有数据
【发布时间】:2017-02-14 06:28:16
【问题描述】:

我想为那些没有应用公式的单元格保留单元格数据。

代码sn-p解释功能。

这个解决方案也覆盖了值,setFormulas won't skip empty array elements, over-writes values

var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getDataRange();
var Formulas = range.getFormulas();


for (var i in Formulas) {
    for (var j in Formulas[i]) {

        if (Formulas[i][j] == "") //cells which dont have the formula
        {
            //dont apply any formula, but keep the existing cell data (as it is)
        } else {
            Formulas[i][j] = '=HYPERLINK("http://www.google.com","Google")'
        }
    }
}

range.setFormulas(Formulas);

【问题讨论】:

    标签: google-apps-script google-sheets google-spreadsheet-api


    【解决方案1】:

    “copyTo()”可以复制带有值、公式和格式的单元格。 https://developers.google.com/apps-script/reference/spreadsheet/sheet#copyTo(Spreadsheet)

    示例脚本如下。

    脚本:

    var range = ss.getRange('a1:a8');
    var values = range.getValues();
    var formulas = range.getFormulas();
    
    var destrange = ss.getRange('b1:b8');
    range.copyTo(destrange);
    
    var destvalues = destrange.getValues();
    var destformulas = destrange.getFormulas();
    

    价值观:

    [[1.0], [5.0], [3.0], [9.0], [1.0], [2.0], [3.0], [24.0]]
    

    公式:

    [[], [], [], [=sum(A1:A3)], [], [], [], [=sum(A1:A7)]]
    

    目标值:

    [[1.0], [5.0], [3.0], [9.0], [1.0], [2.0], [3.0], [24.0]]
    

    目标公式:

    [[], [], [], [=sum(B1:B3)], [], [], [], [=sum(B1:B7)]]
    

    如果这对你有帮助,我很高兴。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-25
      • 2017-04-03
      • 1970-01-01
      • 1970-01-01
      • 2016-06-03
      相关资源
      最近更新 更多