2016-08-05 3 views
0

したがって、以下のコードでは、シートをクリアして値だけで上書きするまで関数は正常に実行されているようです(2番目のシートのフォーミュラは不要です)。残念ながら何らかの理由で私は空白のシートで終わり、値は書かれていません。誰でもその理由を知ることができますか?ソースとターゲットシートは、行の数が異なる場合のおかげsetValuesはGoogleスクリプトで書かれていません

function newMonthFunction() { 

    // what files we want 
var FindThisText = "Core Live 2016"; 
var files = DriveApp.searchFiles('title contains "' + FindThisText + '" and mimeType = "application/vnd.google-apps.spreadsheet"') 



// make a copy for the new month 
    while (files.hasNext()) { 
    var file = files.next(); 
    var sheet = SpreadsheetApp.getActiveSheet() 
    var range = sheet.getRange(2,2); 
    var NewMonth = range.getValue(); 
    var editors = file.getEditors(); 
    var viewers = file.getViewers(); 
    var file = DriveApp.getFileById(file.getId()); 
    var FileRenameStart =file.getName(); 
    var FileRenameend = "Raizcorp Core " + NewMonth; 
    DriveApp.getFileById(file.getId()).makeCopy(FileRenameend); 



    // Get Workbooks 
    var filesNew = DriveApp.searchFiles('title contains "' + FileRenameend + '" and mimeType = "application/vnd.google-apps.spreadsheet"'); 
    var fileNew = filesNew.next(); 

    // Set security for new sheet 
    for (var i = 0; i<viewers.length;i++) { 
     fileNew.addViewer(viewers[i]) 
     }; 
    for (var i = 0; i<editors.length;i++) { 
     fileNew.addEditor(editors[i]) 
     }; 


    var source = SpreadsheetApp.openById(file.getId()); 
    var target = SpreadsheetApp.openById(fileNew.getId()); 

    //Get Spreadsheets 
    var source_sheet = source.getSheetByName("Entrepreneur List"); 
    var target_sheet = target.getSheetByName("Entrepreneur List"); 

    // Get target last row 
    var last_row = target_sheet.getLastRow(); 

    // Set Ranges 
    var source_range = source_sheet.getRange("A:AU"); 
    var target_range = target_sheet.getRange("A:AU"); 
    target_range.clear() 

    // Fetch values 
    var MyValues = source_range.getValues(); 

    // Save to spreadsheet 
    target_range.setValues(MyValues); 
    }} 

答えて

1

は、書き込みコマンドが原因A:AU配列の異なるサイズに動作しない場合があります。ターゲット範囲が正しいサイズになるようにするには、MyValuesを使用して設定します。

target_range = target_sheet.getRange("A1").offset(0,0,MyValues.length,MyValues[0].length); target_range.setValues(MyValues);

をお試しください