如何在Google Spreadsheet单元格中始终调用函数?

时间:2015-07-13 20:36:21

标签: javascript google-apps-script google-sheets

这是我的问题:

我在Google Script上创建了这个功能:

function LASTCOLELEMENT(colIndex) {
  // Gets the whole SpreadSheet
  var ss = SpreadsheetApp.getActiveSpreadsheet();

  var registerSheet = ss.getSheetByName("Registro de Inventario");
  // Returns the last element of the colIndex column
  return registerSheet.getRange(registerSheet.getLastRow(), colIndex).getValue()
}

我在电子表格中将其称为:

=LASTCOLELEMENT(1)

输出是正确的,它给了我想要的东西,但只要我添加一行到#34; Registro de inventario"表格," = LASTCOLELEMENT(1)"仍然显示之前显示的内容,因为它还没有被再次调用。

如果我删除" = LASTCOLELEMENT(1)"并再次重写它显示最后一个元素。

我已经考虑了一段时间,我不知道如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

Google表格会缓存结果,因此无法调用您的函数并且不会刷新数据,因为公式参数(1)不会更改,因此Google会推断结果不会更改;虽然正在使用的数据确实发生了变化,但这超出了谷歌表的检查范围。

您可能会习惯(或教育您的用户)进行手动刷新(使用Ctrl-R)

或者用技巧强制重新加载数据。将未使用的参数添加到函数function lastColVal(colindex,fakecell),并将引用传递给单元格=LASTCOLVAL(1,$A$1)。虽然你的功能没有使用这个值,但它的存在只会使google工作表刷新数据。然后,要在每次添加行时强制刷新,请更改A1单元格的值,例如,使用COUNT个非空单元格。