我有自定义功能作为Google Spreadsheet脚本,这取决于其他一些单元格的值。它第一次放入单元格时运行正常,但是当我更改其他单元格中的数据时,它保持不变。当我更改其他单元格时,如何让第一个单元格自动更新其值?
答案 0 :(得分:4)
我找到了一个不能让我满意的答案,但我觉得这很好。
如果您将一个名为onEdit
的函数添加到电子表格的脚本中,则每次编辑内容时都会调用它。所以,这是对我有用的代码:(它有一些可能有用的细节,所以我没有给他们留下它们)
function onEdit(event) {
if (SpreadsheetApp.getActiveSheet().getName().substr(0,5) == "thing")
SpreadsheetApp.getActiveSheet().getRange("I1").setValue(myCustomFunction());
}
这会使名称以thing
开头的工作表将myCustomFunction
的结果导入单元格I1
。
答案 1 :(得分: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)
只需给您的自定义函数一个虚拟参数即可。在自定义函数中它什么也没做。