Как вернуть все значения из первой строки таблицы - PullRequest
0 голосов
/ 20 декабря 2018

В верхней части моей таблицы есть несколько ключевых слов, которые определяют, по какому столбцу я буду искать.Чтобы начать этот процесс, я пытаюсь прочитать первую строку в массив, а затем перебирать массив, пока не найду правильное значение.Моя проблема в том, что длина моего массива отображается как 1, что означает, что я, очевидно, что-то делаю ужасно неправильно.

Я вызываю эту функцию из триггера onEdit (e).Моя электронная таблица не очень интересна, она состоит из 10 столбцов и 100 строк и имеет 2 значения в верхней строке.

function SearchMe(e) {

  var sheet = e.source.getActiveSheet();  
  var sheetName = sheet.getName();

  var headerRng = sheet.getRange('1:1');
  var headerValues = headerRng.getValues();

  for (var i = 0; i < headerValues.length; i++) {
      if(headerValues[i] == "status") {
         var listenCol = i+1;
         break;
      }
  }  
}

Есть идеи, почему headerValues.length всегда возвращает 1?

1 Ответ

0 голосов
/ 20 декабря 2018

Как насчет этой модификации?

Точка модификации:

  • В вашем скрипте вы извлекаете значения из диапазона "1: 1".Это означает, что значения всех столбцов в строке 1 извлекаются.И значение, полученное getValues(), является 2-мерным массивом.
    • В этом случае headerValues.length равно 1. И headerValues[0].length - это число всех столбцов.

Модифицированный скрипт:

Пожалуйста, измените цикл for следующим образом.

for (var i = 0; i < headerValues[0].length; i++) { // Modified
    if(headerValues[0][i] == "status") { // Modified
       var listenCol = i+1;
       break;
    }
}

или

Вы также можете заменить вышеуказанный скрипт следующим образом.

var listenCol = headerValues[0].indexOf("status") + 1;

Оба скрипта могут быть получены одинаковорезультат.

Примечание:

  • Если вы хотите использовать listenCol вне цикла for, когда он думает о границах, listenCol из var listenCol = i+1; должно бытьперед объявлением цикла.

Ссылки:

Если я неправильно понял ваш вопрос, пожалуйста, сообщите мне.Я хотел бы изменить его.

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