Google apps script OneEdit(e)未触发createFolder+;为新行启用触发器
似乎onEdit(e)不会触发在google drive中创建一个新文件夹——只有在显式运行它时才起作用。有什么想法吗?谢谢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
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();
}
}