Удалить строку, когда значения совпадают в 2 колонках - PullRequest
0 голосов
/ 08 ноября 2018

Я пытаюсь выяснить, почему моя функция после итерации в цикле не увеличивается до следующего значения в диапазоне значений столбца.Я поделюсь для справки (ниже).Функция предназначена для передачи листа и ключа поиска, чтобы найти значения в двух столбцах в промежуточном и промежуточном листе и вернуть rowNum, соответствующий ключу поиска на обоих листах.Затем удалите соответствующую строку.Пожалуйста, смотрите протоколы и протокол выполнения (следующий код)

function findInColumn(sheet, data) 
{
  if(sheet.getName() == "Data" || sheet.getName() == "Info")
  {

    var column = sheet.getRange("D" + ":" + "D");  // like A:A

    var values = column.getValues(); 
    var row = 0;

    while ( values[row] && values[row][0] != data ) {
      row++;
    }

    if (values[row][0] == data) 
      return row+1;
    else 
      return -1;
  }
  else if(sheet.getName() == "AdData" || sheet.getName() == "AdInfo")
  {
    var columnID = sheet.getRange("C" + ":" + "C"),
        columnEmail = sheet.getRange("I"+ ":" + "I");  // like A:A

    var valuesID = [columnID.getValues()],
        valuesEmail = [columnEmail.getValues()]; 

    for(var row = 0;row<valuesID.length;row++)
    {
        if(valuesID[row][0] == data)
        {
          return Logger.log(row+1);
        }
        else if(valuesEmail[row][0] == data)
        {
          return Logger.log(row+1);
        }
        else
        {
         Logger.log("ID " + valuesID[row][0] + "\nEmail " + valuesEmail[row][0] + "\n");
         continue; 
        }
    }
    Logger.log("No matching ID AND Email were found");
  }
  else
  {
    return Logger.log("No sheet was found with that name.");
  }
}

Протоколы выполнения:

[18-11-07 11:17:00:183 PST] SpreadsheetApp.getActiveRange () [0 секунд]

[18-11-07 11: 17: 00: 183 PST] Range.getRow () [0 секунд]

[18-11-07 11: 17: 00: 183 PST] Range.getLastRow () [0 секунд]

[18-11-07 11: 17: 00: 183 PST] Range.getColumn () [0секунд]

[18-11-07 11: 17: 00: 183 PST] Range.getLastColumn () [0 секунд]

[18-11-07 11:17:00:183 PST] SpreadsheetApp.getActiveSpreadsheet () [0 секунд]

[18-11-07 11: 17: 00: 190 PST] Начало выполнения

[18-11-07 11:17: 00: 194 PST] Logger.log ([Успешно! Именованные значения Администратор сайта Опция: Удалить администратора сайта, []]) [0 секунд]

[18-11-07 11: 17: 00: 195PST] SpreadsheetApp.getActiveSpreadsheet () [0 секунд]

[18-11-07 11: 17: 00: 304 PST] Spreadsheet.getSheetByName ([Администратор данных]) [0,109 секунд]

[18-11-07 11: 17: 00: 305 PST] SpreadsheetApp.getActiveSpreadsheet () [0 секунд]

[18-11-07 11: 17: 00: 305 PST] Spreadsheet.getSheetByName ([Информация администратора]) [0 секунд]

[18-11-07 11: 17: 00: 306 PST] Logger.log ([123 test@test.com, []]) [0 секунд]

[18-11-07 11:17:00: 306 PST] Sheet.getName () [0 секунд]

[18-11-07 11: 17: 00: 306 PST] Sheet.getName () [0 секунд]

[18-11-07 11: 17: 00: 306 PST] Sheet.getName () [0 секунд]

[18-11-07 11: 17: 00: 306 PST] Sheet.getRange ([C: C]) [0 секунд]

[18-11-07 11: 17: 00: 307 PST] Sheet.getRange ([I: I]) [0 секунд]

[18-11-07 11: 17: 00: 562 PST] Range.getValues ​​() [0,255 секунды]

[18-11-07 11: 17: 00: 740 PST] Range.getValues ​​()[0,176 секунды]

[18-11-07 11: 17: 00: 741 PST] Logger.log ([ID сайта ID электронной почты администратора электронной почты, []]) [0 секунд]

[18-11-07 11: 17: 00: 741 PST] Logger.log ([Не найдено ни одного совпадения с SiteID и адресом электронной почты администратора, []]) [0 секунд]

[18-11-0711: 17: 00: 742 PST] Sheet.getName () [0 seconds]

[18-11-07 11: 17: 00: 742 PST] Sheet.getName () [0 секунд]

[18-11-07 11:17:00:742 PST] Sheet.getName () [0 секунд]

[18-11-07 11: 17: 00: 742 PST] Sheet.getRange ([C: C]) [0 секунд]

[18-11-07 11: 17: 00: 743 PST] Sheet.getRange ([I: I]) [0 секунд]

[18-11-07 11:17:01:001 PST] Range.getValues ​​() [0,257 секунды]

[18-11-07 11: 17: 01: 002 PST] Range.getValues ​​() [0 секунд]

[18-11-07 11: 17: 01: 004 PST] Logger.log ([ID сайта ID электронной почты электронной почты администратора, []]) [0 секунд]

[18-11-07 11:17:01: 004 PST] Logger.log ([Не найдено ни одного соответствующего идентификатора сайта и администратора, []]) [0 секунд]

[18-11-07 11: 17: 01: 004 PST] Sheet.getName() [0 секунд]

[18-11-07 11: 17: 01: 004 PST] Sheet.getName () [0 секунд]

[18-11-07 11:17: 01: 004 PST] Sheet.getName () [0 секунд]

[18-11-07 11: 17: 01: 005 PST] Sheet.getName () [0 секунд]

[18-11-07 11: 17: 01: 005 PST] Sheet.getRange ([C: C]) [0 секунд]

[18-11-07 11: 17: 01: 006 PST] Sheet.getRange ([I: I]) [0 секунд]

[18-11-07 11:17:01: 255 PST] Range.getValues ​​() [0,248 секунды]

[18-11-07 11: 17: 01: 556 PST] Range.getValues ​​() [0,3 секунды]

[18-11-07 11: 17: 01: 557 PST] Logger.log ([ID сайта ID электронной почты электронной почты администратора, []]) [0 секунд]

[18-11-07 11: 17: 01: 558 PST] Logger.log ([Нет соответствующих SiteID и Admin E-mail был найден, []]) [0 секунд]

[18-11-07 11: 17: 01: 558 PST] Sheet.getName () [0 секунд]

[18-11-07 11: 17: 01: 558 PST] Sheet.getName () [0 секунд]

[18-11-07 11: 17: 01: 558 PST] Sheet.getName () [0 секунд]

[18-11-07 11: 17: 01: 558 PST] Sheet.getName () [0 секунд]

[18-11-07 11: 17: 01: 558 PST] Sheet.getRange ([C: C]) [0 секунд]

[18-11-07 11: 17: 01: 559 PST] Sheet.getRange ([I: I]) [0 секунд]

[18-11-07 11: 17: 01: 817 PST] Range.getValues ​​() [0,257 секунды]

[18-11-07 11: 17: 02: 035 PST] Range.getValues ​​() [0,217 секунды]

[18-11-07 11: 17: 02: 036 PST] Logger.log ([ID сайта ID электронной почты администратора электронной почты, []]) [0 секунд]

[18-11-07 11: 17: 02: 037 PST] Logger.log ([Нет соответствующих SiteID и Admin E-mail был найден, []]) [0 секунд]

[18-11-07 11: 17: 02: 037 PST] Sheet.getName () [0 секунд]

[18-11-07 11: 17: 02: 037 PST] Sheet.getName () [0 секунд]

[18-11-07 11: 17: 02: 037 PST] Sheet.getName () [0 секунд]

[18-11-07 11: 17: 02: 038 PST] Sheet.getRange ([C: C]) [0 секунд]

[18-11-07 11: 17: 02: 038 PST] Sheet.getRange ([I: I]) [0 секунд]

[18-11-07 11: 17: 02: 316 PST] Range.getValues ​​() [0,278 секунды]

[18-11-07 11: 17: 02: 318 PST] Range.getValues ​​() [0 секунд]

[18-11-07 11: 17: 02: 320 PST] Logger.log ([ID сайта ID электронной почты администратора электронной почты, []]) [0 секунд]

[18-11-07 11: 17: 02: 320 PST] Logger.log ([Нет соответствующих SiteID и Admin E-mail был найден, []]) [0 секунд]

[18-11-07 11: 17: 02: 324 PST] Ошибка выполнения: не удается найти метод deleteRow ((класс)). (строка 113, файл "макросы") [всего 2,127 секунды выполнения]

1 Ответ

0 голосов
/ 08 ноября 2018

заменить

var valuesID = [columnID.getValues()],
valuesEmail = [columnEmail.getValues()];

от

var valuesID = columnID.getValues(),
valuesEmail = columnEmail.getValues(); 

здесь вы пытаетесь увеличить 3D-массив, как если бы он был 2D-массивом. getValues уже возвращает двумерный массив.

ЛИТЕРАТУРА

GetValues ​​()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...