2016-04-25 11 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

ファイルを移動するには、ファイル自体をスプレッドシートではなくファイルとして取得する必要があります。

ArchiveFolder.addFile()に渡すことができるファイルオブジェクトを取得するには、DriveApp.getFileById()を使用する必要があります。

さらに、コードに構文エラーがあります。あなたは声明

  • あなた場合は、の末尾にステートメントセパレーター;を必要としないTransferComplete

  • "Yes"に比較する代わりに、比較演算子 ==または '==='の代入演算子 =を使用している

    • &&を使用して2つのステートメントを区切ります。そのように区切る必要があります。

      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パーフェクト、それは私のテスト中に私のために働いた。それは間違いなくあなたのために働くはずです。 –

    関連する問題