Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.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
Google apps script OneEdit(e)未触发createFolder+;为新行启用触发器_Google Apps Script_Google Sheets_Triggers - Fatal编程技术网

Google apps script OneEdit(e)未触发createFolder+;为新行启用触发器

Google apps script OneEdit(e)未触发createFolder+;为新行启用触发器,google-apps-script,google-sheets,triggers,Google Apps Script,Google Sheets,Triggers,似乎onEdit(e)不会触发在google drive中创建一个新文件夹——只有在显式运行它时才起作用。有什么想法吗?谢谢 function onEdit(e) { var requestRow = e.range.getRow(); var folderName = SpreadsheetApp.getActiveSheet().getRange(requestRow,6).getValue(); var newFolder = DriveApp.getFolderById('1

似乎onEdit(e)不会触发在google drive中创建一个新文件夹——只有在显式运行它时才起作用。有什么想法吗?谢谢

function onEdit(e) {
  var requestRow = e.range.getRow();
  var folderName = SpreadsheetApp.getActiveSheet().getRange(requestRow,6).getValue();
  var newFolder = DriveApp.getFolderById('1LOfkVGrV-juzUiwbU8owHj74T9wMAz').createFolder(folderName);
}
试试这个:

function func1(e) {
  DriveApp.getFolderById('1LOfkVGrV-juzUiwbU8owHj74T9wMAz').createFolder(SpreadsheetApp.getActiveSheet().getRange(e.range.rowStart,6).getValue());
}

function isTrigger(funcName){
  var r=false;
  if(funcName){
    var allTriggers=ScriptApp.getProjectTriggers();
    for(var i=0;i<allTriggers.length;i++){
      if(funcName==allTriggers[i].getHandlerFunction()){
        r=true;
        break;
      }
    }
  }
  return r;
}

Simple
OneEdit(e)
触发器无权调用
DriveApp
,您需要将其设置为可安装触发器。可能与Ross提到的相同,您应该使用可安装触发器,知道如何使其仅适用于新行吗?请检查以查看是否满足任何要求。是的,这很好,“onChange(e)”和e.changeType==“INSERT_ROW”应该可以,但不确定如何使其运行。添加如下,但不起作用-
函数func1(e){if(e.changeType=='INSERT_ROW'){DriveApp.getFolderById('1LOfkVGrV-juzUiwbU8owHj74T9wMAz').createFolder(SpreadsheetApp.getActiveSheet().getRange(e.range.rowStart,6.getValue());}
function createOnEditTrigger() {
  if(!isTrigger('func1')){
    ScriptApp.newTrigger('func1').forSpreadsheet(SpreadsheetApp.getActive().getId()).onEdit().create();
  }
}