2016-07-20 16 views
0

私は毎日新しいシートからの情報でシートを自動更新しようとしているプロジェクトに取り組んでいます。新しいシートは同じフォルダにドロップされ、毎日同じ名前が付けられます。しかし、データをインポートする新しいシートでコードを実行するには、毎日新しいシートキーを取得する必要があります。TypeError:オブジェクト内にgetId関数が見つかりません

私のsearchfolder関数で、オブジェクト "Daily"(私のソースシート)に関数getIdが見つかりませんでした。もし誰かが私の間違いを教えてもらえればいいのですが、31行目のキーIDを保存して保存しておけば良いでしょう!

var counter = 0; 

var files = []; 

function searchFolder() { 
    var folderId = '0B6wmHZ5c0fzfTjI1bFpKOHI3N3M'; // test folder 
    // Log the name of every file in the folder. 
    var filesN = DriveApp.getFolderById(folderId).getFiles(); //log files in folder 
    while (filesN.hasNext()) 
    files.push(filesN.next().getName().getId()); 
} 

function autoUpdate() { //updates monthly from newly imported daily 
    if (counter == 1) { //counter is made to be 1 when day is uploaded to monthly 
    var ss = SpreadsheetApp.openById("1lH9Y12P2Q2OFndIJoAU48ePggXFc9WGcWjolZMcABoc"); 
    //defines target spreadsheet ie monthly 
    SpreadsheetApp.setActiveSpreadsheet(ss); //sets target spreadsheet as 
    active 
    var range = ss.getRange("A1:A1"); //sets range in target. ONLY CHOOSE ONE 
    CELL FOR IMPORTRANGE - IF MORE THAN 1 IS CHOSEN YOU WILL GET A# REF 
    ERROR BECAUSE IT WILL PUT IMPORTRANGE IN ALL CELLS 
    range.activate; // activates range 
    range.setValue('=IMPORTRANGE("1hVv6ldHEaCCI_uptr0MpzAyP60x7on8YR_brWwWXTWo","she et1!A1:167")'); 
    counter = (counter - 1) 
    } 
} 

function timeStamp() { 
    if (files == "Daily") { 
    counter = (counter + 1) 
    } 
} 

searchFolder(); 
timeStamp(); 
autoUpdate(); 
+0

私はこのAPIを知りませんが、むしろfilesN.next 'より、' 'filesN.next()'上のgetId() '権を呼ぶべきです().getName() '? – joews

答えて

1

あなたはfilesN.next().getName().getId()に電話しています。

filesN.next()File objectを返しますが、File#getNameは文字列を返します。

右関数はFile#getIdです:

while (filesN.hasNext()) 
    files.push(filesN.next().getId()); 
+0

ありがとう、これはトリックでした!あなたは命の恩人です –

関連する問題