Google apps script 我需要在onEdit中运行Google应用程序脚本

Google apps script 我需要在onEdit中运行Google应用程序脚本,google-apps-script,google-sheets,triggers,Google Apps Script,Google Sheets,Triggers,我试图创建一个脚本,这样当我编辑a列中的文本时,它会自动删除同一行D列中的文本,如果同一行中的C列(它包含来自我驱动器的文件ID)不为空,则删除该文件 我成功地创建了它,并且在测试中显式运行脚本时它仍在工作,但onEdit事件似乎从未被触发(甚至没有看到日志消息)。 有人知道它是如何工作的吗 function onEdit(e) { var currentSheet = e.range.getSheet(); var sheetEdited = currentSheet.getN

我试图创建一个脚本,这样当我编辑a列中的文本时,它会自动删除同一行D列中的文本,如果同一行中的C列(它包含来自我驱动器的文件ID)不为空,则删除该文件

我成功地创建了它,并且在测试中显式运行脚本时它仍在工作,但onEdit事件似乎从未被触发(甚至没有看到日志消息)。 有人知道它是如何工作的吗

    function onEdit(e) {
  var currentSheet = e.range.getSheet();
  var sheetEdited = currentSheet.getName();
  var rowEdited = e.range.getRow();
  var columnEdited = e.range.getColumn();

  // if cell edited in sheet name form 1 and in column 1 then
  if(sheetEdited == "form 1" && ( columnEdited == 1)){ 
  // delete text in edited row column D
    currentSheet.getRange(rowEdited,4).setValue('');
  // if on edited row column C(that contain doc id ) if filled then detele that file 
   if (sheetId != "") {
         var sheetId = currentSheet.getRange(rowEdited,3).getValues();
         DriveApp.getFileById(sheetId).setTrashed(true);
    }
  }
}

问题在于,简单触发器无法执行需要授权的操作。所以你必须使用一个。不要忘记更改函数的名称

function onEdit(e) {
  var sh = e.range.getSheet();
  if(sh.getName()=="form 1" &&  e.range.columnStart==1){ 
    sh.getRange(e.range.rowStart,4).setValue('');//D
    var id=sh.getRange(e.range.rowStart,3).getValue();//C
    if(id!="")DriveApp.getFileById(id).setTrashed(true);
  }
}