我想将当前文件移动到一个文件夹,并根据单元格值的变化将其从它所在的文件夹中删除。这就是我所拥有的:
function onEdit() {
var File = SpreadsheetApp.getActiveSpreadsheet();
var TransferComplete = File.getSheetByName("Sheet9").getRange("E24").getValue();
var ActiveFolder = DriveApp.getFolderById("a0lweiurnawoeiuranwv");
var ArchiveFolder = DriveApp.getFolderById("apsleriuoavwnoeiura");
if (TransferComplete = "Yes" )
{ArchiveFolder.addFile(File) && ActiveFolder.removeFile(File)};
}
错误说无法找到"添加文件"方法。
答案 0 :(得分:1)
要移动文件,您必须先将文件本身作为文件而不是电子表格。
您需要使用DriveApp.getFileById()
来检索文件对象,然后将其传递到ArchiveFolder.addFile()
。
此外,您的代码存在一些语法错误。
=
而不是比较运算符==
或'==='
来比较TransferComplete
与"Yes"
;
您正在使用&&
分隔两个语句,您需要将它们分开,如此
if(TransferComplete == "Yes" ){
ArchiveFolder.addFile(File);
ActiveFolder.removeFile(File);
}
更正后的代码:
function onEdit() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var file = DriveApp.getFileById(spreadsheet.getId());
var transfeComplete = spreadsheet.getSheetByName("Sheet9").getRange("E24").getValue();
var activeFolder = DriveApp.getFolderById("a0lweiurnawoeiuranwv");
var archivefolder = DriveApp.getFolderById("apsleriuoavwnoeiura");
if (transfeComplete === "Yes" ){
archivefolder.addFile(file);
activeFolder.removeFile(file);
}
}