我有一个自定义功能作为谷歌电子表格脚本,它依赖于某些其他细胞的值。它运行OK,我第一次把它放在一个细胞,但后来当我改变在其他单元中的数据也保持不变。怎样使所述第一小区更新其值时自动予改变的其他细胞?

有帮助吗?

解决方案

我找到了答案不完全让我高兴,但它不够好我的猜测。 如果你添加一个名为onEdit功能的电子表格的脚本,它会被称为每次的东西被编辑。所以,这是为我工作的代码:(它有一些细节,让我给他们留下未经编辑的可能有用)

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

这使得片材名称以thing,得到myCustomFunction的结果成细胞I1

其他提示

我有类似的问题。

这是我如何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,价格d:d)

只要给您的自定义功能的虚拟PARAM。它不会在自定义函数做任何事情。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top