Google apps script 我需要在onEdit中运行Google应用程序脚本
我试图创建一个脚本,这样当我编辑a列中的文本时,它会自动删除同一行D列中的文本,如果同一行中的C列(它包含来自我驱动器的文件ID)不为空,则删除该文件 我成功地创建了它,并且在测试中显式运行脚本时它仍在工作,但onEdit事件似乎从未被触发(甚至没有看到日志消息)。 有人知道它是如何工作的吗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
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);
}
}