This is my first attempt in Google Sheets scripting
I try to compare each row of the first column in two sheets.
If any value in sheet 1 is not in sheet 2, I would add it at the end of sheet 2.
This is the code, the compare values never match, I tried ==, ===, with and without toSting(). I never get the flag found=1
, all values in sheet1 col1 are copied at sheet2 col1.
var ui = SpreadsheetApp.getUi();
var ss = SpreadsheetApp.getActiveSpreadsheet();
function Prueba2() {
var sheet = ss.getSheets()[0];
var rangeData = sheet.getDataRange();
sheet.getRange('A1').activate();
var lastRow = rangeData.getLastRow();
var searchRange = sheet.getRange(2,1, lastRow, 1);
var sheet2 = ss.getSheets()[1];
var rangeData2 = sheet2.getDataRange();
var lastRow2 = rangeData2.getLastRow();
var searchRange2 = sheet2.getRange(2,1, lastRow2, 1);
var l1= searchRange.getLastRow();
var l2= searchRange2.getLastRow();
var rangeValues = searchRange.getValues();
var rangeValues2 = searchRange2.getValues();
var found=0;
var arr = [];
// Loop through array and if condition met
for ( i = 0; i < lastRow - 1; i++){
found=0;
for ( j = 0 ; j < lastRow2 - 1; j++){
var vi=rangeValues[i];
var vj=rangeValues2[j];
if(rangeValues[i].toString() === rangeValues2[j].toString()){
found=1;
break;
};
};
if (found==0){
Logger.log(rangeValues[i]);
arr.push(rangeValues[i]);
};
};
var toAddArray = [];
for (k = 0; k < arr.length; ++k){
toAddArray.push([arr[k]]);
}
sheet2.getRange(lastRow2+1, 1, arr.length, 1).setValues(toAddArray);
};
EDIT
This worked, but I don't know why
for ( j = 0 ; j < lastRow2 - 1; j++){
var vi=rangeValues[i].toString();
var vj=rangeValues2[j].toString();
//if(rangeValues[i] === rangeValues2[j]){
if(vi===vj||vi==""){
found=1;
break;
};
};