2016-04-25 14 views
0

Ich möchte die aktuelle Datei in einen Ordner verschieben und entfernen Sie es von dem, in dem es sich befindet, basierend auf einer Zellenwertänderung. Hier ist, was ich habe:Wie verschiebe ich die aktuelle Datei in einen Ordner?

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


} 

Der Fehler sagt, dass es nicht finden kann "add file" -Methode.

Antwort

1

Um eine Datei zu verschieben, müssen Sie zuerst die Datei selbst als Datei und nicht als Tabelle abrufen.

Sie müssen DriveApp.getFileById() verwenden, um ein Dateiobjekt abzurufen, das Sie dann an ArchiveFolder.addFile() übergeben können.

Zusätzlich haben Sie einige Syntaxfehler mit Ihrem Code.

  • Sie verwenden einen Zuweisungsoperator = anstelle eines Vergleichsoperator == oder '===' zu vergleichen TransferComplete-"Yes"
  • Sie keine Aussage seperator müssen ; am Ende einer if-Anweisung
  • Sie verwenden Sie &&, um zwei Anweisungen zu trennen, müssen Sie sie wie folgt trennen

    if(TransferComplete == "Yes"){ ArchiveFolder.addFile(File); ActiveFolder.removeFile(File); }

Corrected Code:

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

Vielen Dank. Aber was ich tun muss, ist die aktuelle Datei zu bekommen ... nicht Datei nach ID ... gibt es eine Möglichkeit, dies zu tun? – user2048913

+0

Missachtung ... Ich sehe, wie Sie das geschafft haben. Vielen Dank! Wird getestet und als beantwortet markiert! – user2048913

+0

@ user2048913 Perfekt, es hat bei meinen Tests für mich funktioniert. Es sollte definitiv für Sie arbeiten. –

Verwandte Themen