1

我有一个自定义函数作为谷歌电子表格脚本,它取决于其他一些单元格的值。我第一次将它放入单元格时运行正常,但是当我更改其他单元格中的数据时,它保持不变。当我更改其他单元格时,如何使第一个单元格自动更新其值?

4

2 回答 2

4

我找到了一个不能完全让我开心的答案,但我想这已经足够好了。如果您将调用的函数添加onEdit到电子表格的脚本中,则每次编辑内容时都会调用该函数。所以,这是对我有用的代码:(它有一些可能有用的细节,所以我没有编辑它们)

function onEdit(event) {
  if (SpreadsheetApp.getActiveSheet().getName().substr(0,5) == "thing")
    SpreadsheetApp.getActiveSheet().getRange("I1").setValue(myCustomFunction());
}

这使得名称以 开头的工作表thing得到myCustomFunctioninto cell的结果I1

于 2010-11-25T21:35:21.213 回答
0

我有一个类似的问题。

这就是我在 atm 上做的方式,但它不是最好的解决方案。我正在寻找一个更好的。

如果工作表价格和 D 列中的任何值发生变化。这意味着如果整列中的任何单元格值发生变化,它会更新自定义函数值。

//Search Price sheet with the given name. Return price. dummy param updates google ss once the "Prices" sheet values changed.
function searchPrice(price,dummy)
{
  var SPREADSHEET_NAME = "Prices";
  var SEARCH_COL_IDX = 2;
  var RETURN_COL_IDX = 3;
  var values = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SPREADSHEET_NAME).getDataRange().getValues();
  for (var i = 0; i < values.length; i++)
  {
    var row = values[i];
    if (row[SEARCH_COL_IDX] == price)
    {
      return row[RETURN_COL_IDX];
    }
  }
}

这就是你所说的 =searchPrice(B8,Prices!D:D)

只需给您的自定义函数一个虚拟参数。它在自定义函数中不做任何事情。

于 2018-10-12T08:18:39.953 回答