有时,当更改单元格的值时,电子表格中的公式不会自动刷新,并且单元格上会出现注释以选择单元格并按 CTRL+SHIFT+E 强制重新加载公式
我想从 Apps 脚本调用这个重新加载函数。有没有办法用 Apps Script 做到这一点?我尝试了 Spreadsheet.flush(),但它不起作用。
感谢您的帮助,最好的问候
有时,当更改单元格的值时,电子表格中的公式不会自动刷新,并且单元格上会出现注释以选择单元格并按 CTRL+SHIFT+E 强制重新加载公式
我想从 Apps 脚本调用这个重新加载函数。有没有办法用 Apps Script 做到这一点?我尝试了 Spreadsheet.flush(),但它不起作用。
感谢您的帮助,最好的问候
也许这个“不可能”的答案随着新的电子表格或自 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);
}
这应该可以,设置一些其他公式并再次恢复它
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])
}
}
}
遗憾的是,无法使用 Apps 脚本触发对公式的重新评估。