Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 可安装触发器不';使用setValue()时不触发_Javascript_Google Apps Script_Google Sheets_Triggers - Fatal编程技术网

Javascript 可安装触发器不';使用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

我目前正在做一个天然气项目,面临一个奇怪的问题

我已经设置了一个可安装触发器来检测列A中的任何更改,并启动了一个自定义函数(InstallableOneEdit)。如果完成修改的行包含数据,我将调用一个自定义函数(GetProductInfo)进行API调用,该调用将在不同的单元格中写入值

如果没有,我就清除其他行

我的问题是,如果我在A列中手动插入数据,那么它就像一个符咒,但是如果我使用一个函数在A列中写入.setValue(来自另一个自定义函数),触发器不会触发

这是我的密码:

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)。根据设计,脚本更改值时不会调用编辑触发器。是的,谢谢,我来看看。