Оператор if ничего не возвращает ИСТИНА, хотя должен - PullRequest
0 голосов
/ 20 января 2019

Я пытаюсь сравнить значения из столбцов с 2 листов, но это не работает.Я новичок в этом, я думаю, что это утверждение if, потому что я попытался записать любую возможную переменную, и все работает.

function combineemail() {

var  source = SpreadsheetApp.getActive();
var  source_sheet = source.getSheetByName("Export1");
var  source2_sheet = source.getSheetByName("Sheet1");
var  target_sheet = source.getSheetByName("Merge1");
var  numRows = source_sheet.getLastRow() - 1;
var  source_range = source_sheet.getRange(2, 5, numRows, 1).getValues();
var  numRows2 = source2_sheet.getLastRow() - 1;
var  source2_range = source2_sheet.getRange(2, 2, numRows2, 1).getValues();
var c = "Merge"

for (var i = 0; i < numRows; i++){
for (var j = 0; j < numRows2; j++){
    if (source_range[i] == source2_range[j]) {
      Logger.log(source2_range[j]);
    }; 
};
};

};

1 Ответ

0 голосов
/ 20 января 2019

getValues() назначить многомерный массив (2D-массив) для source_range и source2_range.Когда вы делаете source_range[i] == source2_range[j], вы сравниваете два массива, но в JavaScript это сложно.

Если вы хотите сравнить значения ячеек в двух диапазонах одного столбца, вам следует использовать

source_range[i][0] == source2_range[j][0]
  • Первый индекс соответствует строкам
  • Второй индекс соответствует столбцам

Имейте в виду, что индексы JavaScript основаны на 0, а индексы строк / столбцов SpreadsheetApp - 1 основан.Справочник

...