2017-09-09 13 views
-1

私は前のコピーに列をマッチングするためのチェックを含めるには、この作業スクリプトを拡張しようとしています。比較列

function copyInfo() // https://stackoverflow.com/questions/44967086/copy-data-from-one-sheet-to-another-in-google-app-script-and-append-a-row-one-s 
{ 
    var copySheet = ssA.getSheetByName("export"); 
    var pasteSheet = ssA.getSheetByName("paste"); 
    var compareFrom = copySheet.getRange('B2:B99'); 
    var compareTo = pasteSheet.getRange('C2:C99'); 
    // if(compareFrom == compareTo){ 
    var source = copySheet.getRange('N1:O99'); // get source range 
    var destination = ss.getRange('O1:P99'); // get destination range 
    source.copyTo(destination); // copy values to destination range 
    source.clearContent(); // clear source values 
    // } else{SpreadsheetApp.getUi().alert("rows don't match!");} 
} 

基本的に、私は、ソース・シート上の列Bの値がペーストシートの列Cの値と同程度であることを確認します。

+0

あなたが何を検索しました/研究?参照[ask]。 –

答えて

0

私はこれが助けるべきだと思います。あなたは、いくつかの手順を欠落していたし、私はコメントで明らかにすることを試みました。

function copyInfo() // https://stackoverflow.com/questions/44967086/copy-data-from-one-sheet-to-another-in-google-app-script-and-append-a-row-one-s 
{ 
    //you need to get the SpreadsheetApp service 
    var copySheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("export"); 
    var pasteSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("paste"); 

    //get the values from the ranges and flatten with reduce 
    var compareFrom = copySheet.getRange('B2:B99').getValues().reduce(function(a, b) {return a.concat(b);}); 
    var compareTo = pasteSheet.getRange('C2:C99').getValues().reduce(function(a, b) {return a.concat(b);}); 

    //you need to loop over the compare from array and indexOf the compareTo array 
    for(var i = 0; i < compareFrom.length; i++) { 
    var inCompareTo = compareTo.indexOf(compareFrom[i]); 

    if(inCompareTo > -1) { 
     var source = copySheet.getRange('N1:O99'); // get source range 
     var destination = ss.getRange('O1:P99'); // get destination range 
     source.copyTo(destination); // copy values to destination range 
     source.clearContent(); // clear source values 
    } 
    } 
}