Javascript 可安装触发器不';使用setValue()时不触发
我目前正在做一个天然气项目,面临一个奇怪的问题 我已经设置了一个可安装触发器来检测列A中的任何更改,并启动了一个自定义函数(InstallableOneEdit)。如果完成修改的行包含数据,我将调用一个自定义函数(GetProductInfo)进行API调用,该调用将在不同的单元格中写入值 如果没有,我就清除其他行 我的问题是,如果我在A列中手动插入数据,那么它就像一个符咒,但是如果我使用一个函数在A列中写入.setValue(来自另一个自定义函数),触发器不会触发 这是我的密码:Javascript 可安装触发器不';使用setValue()时不触发,javascript,google-apps-script,google-sheets,triggers,Javascript,Google Apps Script,Google Sheets,Triggers,我目前正在做一个天然气项目,面临一个奇怪的问题 我已经设置了一个可安装触发器来检测列A中的任何更改,并启动了一个自定义函数(InstallableOneEdit)。如果完成修改的行包含数据,我将调用一个自定义函数(GetProductInfo)进行API调用,该调用将在不同的单元格中写入值 如果没有,我就清除其他行 我的问题是,如果我在A列中手动插入数据,那么它就像一个符咒,但是如果我使用一个函数在A列中写入.setValue(来自另一个自定义函数),触发器不会触发 这是我的密码: functi
function installableOnEdit(e) {
var ss = SpreadsheetApp.getActive();
var editedRange = e.source.getActiveRange();
var editedRow = editedRange.getRow();
var editedCol = editedRange.getColumn();
var url = editedRange.getValue();
var urlColumn = 1;
if (editedCol == urlColumn){
if (url != ""){
GetProductInfo(url, "material", editedRow, editedCol);
}else {
//Reset material
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Data").getRange(editedRow, editedCol+3).setValue("");
}
}
}
有什么想法吗?多亏了特霍奇,我找到了解决办法
这并不适合所有人,但为了使用触发器,我只需在生成.setValue()的函数末尾调用从API检索信息的自定义函数(GetProductInfo)。根据设计,脚本更改值时不会调用编辑触发器。是的,谢谢,我来看看。