3

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

我想从 Apps 脚本调用这个重新加载函数。有没有办法用 Apps Script 做到这一点?我尝试了 Spreadsheet.flush(),但它不起作用。

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

4

3 回答 3

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);
}
于 2015-05-14T23:14:13.597 回答
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])
        }
    }
}
于 2018-02-17T04:43:22.667 回答
-1

遗憾的是,无法使用 Apps 脚本触发对公式的重新评估。

于 2012-09-26T23:04:19.513 回答