onEdit触发器Google脚本



我一直在制作一个计算器,它有很多自定义函数,运行良好。但我有大约10个函数需要运行,所以每次编辑工作表时,我都会使用触发器来运行这些函数。但它停止了工作,而且资源太多(每次编辑某个内容时都会运行所有函数(。

那么,只有在编辑了特定单元格值的情况下,我才能创建一个触发器函数来运行我的自定义函数之一呢?

在这个例子中,我希望函数ifEntrada((在单元格B4中的值发生更改时运行:

function ifEntrada() {
var calcular_range = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Apartamentos").getRange("B4");
var calcular = calcular_range.getValue();
if (calcular == "Inserir Valor Manualmente") {
showRows_entrada_manual();
} else {
hideRows_entrada_manual()
}
}

显然,您已经声明了观察工作表编辑的触发器,这很容易达到速率限制。您必须使用内置函数onEdit()

function onEdit(e) {
var activeRow = e.range.getRow();
var activeCol = e.range.getColumn();
if (activeCol == 2 && activeRow == 4) ifEntrada();  // "2" represents the B
}
function ifEntrada() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Apartamentos');
// do things
}

请注意,只有当B4是编辑生效的第一个单元格时,在监控单元格B4所在的范围内进行的编辑才会触发onEdit函数。

最新更新