2016-04-25 75 views
0

我想將當前文件移動到一個文件夾中,並根據單元格值的變化將它從它所在的文件夾中移除。這是我有:如何將當前文件移動到文件夾?

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)}; 


} 

該錯誤說,它不能找到「添加文件」的方法。

回答

1

要移動文件,您必須首先將文件本身作爲文件而不是電子表格。

您需要使用DriveApp.getFileById()來檢索文件對象,然後您可以將其傳遞到ArchiveFolder.addFile()

此外,你的代碼有一些語法錯誤。

  • 您正在使用的賦值運算符=,而不是比較操作=='==='的比較TransferComplete"Yes"
  • 你不if語句
  • 你的到底需要聲明分隔符;正在使用&&來分開兩個語句,你需要像這樣分開它們

    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); 
    } 
} 
+0

太謝謝你了。但我需要做的是獲得當前文件...不是通過ID文件...有沒有辦法做到這一點? – user2048913

+0

無視...我看你是如何管理的。謝謝!將測試並標記爲已回答! – user2048913

+0

@ user2048913完美,它在我的測試過程中爲我工作。它應該肯定適合你。 –

相關問題