强制公式通过Apps脚本刷新

时间:2012-09-14 08:21:39

标签: google-apps-script spreadsheet

有时,当更改单元格的值时,公式不会在电子表格中自动刷新,并且单元格上会显示注释以选择单元格并按CTRL + SHIFT + E强制重新加载公式

我想从Apps脚本中调用此重新加载功能。有没有办法用Apps脚本做到这一点?我试过Spreadsheet.flush(),但它没有用。

感谢您的帮助, 最好的问候

3 个答案:

答案 0 :(得分:1)

或许这个“不可能”的答案已经随着新的电子表格或自2012年以来的其他时间而改变。

如果存储单元格的公式,清除单元格,然后设置单元格的公式,它似乎重新评估对我来说很好。

以下是对我正在做的事情的快速而肮脏的概述:

// highlight a single cell and run this function
function myFunction() {
  var curr_cell = SpreadsheetApp.getActiveRange();
  var formula = curr_cell.getFormula();
  // clear only the contents, not notes or comments or formatting.
  curr_cell.clearContents();
  curr_cell.setFormula(formula);
}

答案 1 :(得分:0)

不幸的是,无法使用Apps Script触发重新评估公式。

答案 2 :(得分:0)

这应该可行,设置一些其他公式并再次恢复它

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var range = sheet.getDataRange();

var values = range.getValues();
var formulas = range.getFormulas()

for (var i = 0; i < formulas.length; i++) {
    for (var j = 0; j < formulas[i].length; j++) {
        if (formulas[i][j]) {
            var f = sheet.getRange(i + 1, j + 1).clearContent().setFormula('=true');
            SpreadsheetApp.flush();
            f.setFormula(formulas[i][j])
        }
    }
}