2016-07-14 11 views
0

JavaScriptとGoogle Appsでコーディングするのが初めてです。私はデータベースを作成しています。新しいデータベースを夜間に自動的に集計シートに更新します。TypeError:オブジェクト内にhasNext関数が見つかりません(日付IDを持つフォルダ)

エラーが発生し続けているため、私のsearchfolder()関数は実行されません "TypeError:関数hasNextがオブジェクトThu Jul 14 09:48:01 PDT 2016 INFO:Target(行24、

のvarファイルはDriveApp.getFolderById(フォルダID)の後.getfilesを持っているので、私は問題が

CODE何であるかわずかな考えではない持っている」:

var counter = 0; 

function timeStamp(){ 
counter= (counter+1) 
} 

var files = "null" 

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

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"); 
    range.activate; // activates range 
    range.setValue('=IMPORTRANGE("1K7Rj4QK- 
    EVjf8lZ0BSew7iDeCtktqWjzgjoaVPe5jSc","sheet1!A1:G6")'); //Puts in 
    IMPORTRANGE into target as a STRING value (just words). Once it hits the 
    sheet, then SHEETS executes IMPORTRANGE not SCRIPTS. In Source sheet, 
    range is selected to import to target (ie A1:G6) 
    counter=(counter-1) 
    } 
} 

//searchFolder(); 
timeStamp(); 
autoUpdate(); 

答えて

0

をあなたは、変数files 2回を宣言しました。また、ログにプッシュしてログを取得するのは悪い習慣です。代わりに代わりに配列を使用してください。ファイル名を格納する変数filesは、最初のループの後にログコンテキストに変更されます。つまり、オブジェクト内に関数hasNextがありません(タイプはstringではありません)。

var counter = 0; 

function timeStamp(){ 
counter= (counter+1) 
} 

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

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"); 
    range.activate; // activates range 
    range.setValue('=IMPORTRANGE("1K7Rj4QK-EVjf8lZ0BSew7iDeCtktqWjzgjoaVPe5jSc","sheet1!A1:G6")'); //Puts in IMPORTRANGE into target as a STRING value (just words). Once it hits the sheet, then SHEETS executes IMPORTRANGE not SCRIPTS. In Source sheet, range is selected to import to target (ie A1:G6) 
    counter=(counter-1) 
    } 
} 

searchFolder(); // After this function all file names are stored in variable `files` 
timeStamp(); 
autoUpdate(); 

あなたも、フォルダ内のすべてのファイルを記録したい場合は、Logger.log(files.join('\n'));

+0

これは完全にトリックをした実行することができます!私を教育し、それを修正してくれてありがとう、あなたがどれくらいの命を救う人なのか教えてもらえません! –

関連する問題