Javascript 强制Google脚本数组公式重新计算(模拟CTRL+;E)

Javascript 强制Google脚本数组公式重新计算(模拟CTRL+;E),javascript,google-sheets,array-formulas,Javascript,Google Sheets,Array Formulas,我确实在这方面找到了一些其他的地方,但没有找到答案(或者旧的答案,希望事情已经改变了) 我只想把一个公式放在谷歌表格单元格中(通过一个脚本),并让它完全刷新/重新编译。问题是,该公式返回一个值数组,如下所示: SORT(TRANSPOSE(QUERY(A2:B299,"Select count(A) pivot(B)")),2,FALSE) 我可以把所有的东西都放在我想要的单元格里,然后选择那个单元格。但我仍然需要手动按CTRL+E键来填充数组(这是我收集的啤酒中有多少瓶属于每个酿酒商的摘要)

我确实在这方面找到了一些其他的地方,但没有找到答案(或者旧的答案,希望事情已经改变了)

我只想把一个公式放在谷歌表格单元格中(通过一个脚本),并让它完全刷新/重新编译。问题是,该公式返回一个值数组,如下所示:

SORT(TRANSPOSE(QUERY(A2:B299,"Select count(A) pivot(B)")),2,FALSE)
我可以把所有的东西都放在我想要的单元格里,然后选择那个单元格。但我仍然需要手动按CTRL+E键来填充数组(这是我收集的啤酒中有多少瓶属于每个酿酒商的摘要)

我已经尝试了通过研究找到的所有“flush”和“re-calc”命令,但没有任何东西可以让公式“take”。或者,我寻找一种暴力解决方案——向单元格发送CTRL+E,就好像我自己按下了键一样——但找不到任何可以执行Visual Basic“SendKeys”或Visual Foxpro“KEYBOARD”命令的操作

下面是调用“refreshBrewerTable()”按钮后面的Google脚本代码:


有什么想法吗?我基本上希望有一个按钮,当我在墙上添加新的啤酒瓶时,它可以刷新这个数据透视摘要数据。

我想我只是有点傻,不知道需要这个

因为这已经通过脚本完成了,所以我可以简单地手动将所有CONTINUE()公式添加到“root”单元格(其中包含查询的单元格)的右下方的单元格中。如果我在其他地方使用一个惟一的()函数来告诉我有多少不同的酿酒者(或者我所依赖的任何东西),我甚至可以很聪明地知道还有多远。这就是CTRL+E所做的一切--尽可能地填充CONTINUE()公式

不管怎样,现在一切都正常了,一旦填充了所有CONTINUE()单元格,按下CTRL+E的提示就会从“root”单元格中消失

function refreshBrewerTable() {
  return refreshQuery(9, 13, "B", 2, "FALSE");
}

function refreshQuery(rootrow, rootcol, pivotColumn, sortColumn, sortAsc) {
  var range = sheet.getRange(rootrow, rootcol, sheet.getLastRow(), rootcol + 1)
  range.clearContent();
  range = sheet.getRange(rootrow, rootcol);
  range.setFormula('=SORT(TRANSPOSE(QUERY(A2:' + pivotColumn + sheet.getLastRow().toString() + ',"Select count(A) pivot(' + pivotColumn + ')")),' + sortColumn.toString() + ',' + sortAsc + ')');
  sheet.setActiveSelection(range.getCell(1, 1).getA1Notation());
  return true;
}