Google Apps Sheets, если выписка не выполняется - PullRequest
0 голосов
/ 07 июня 2018

Я работал над сценарием Google Sheets Script для своей работы и столкнулся с препятствием.Цель здесь состоит в том, чтобы идентифицировать ячейку в строке заголовка с определенным заголовком и вернуть столбец, в котором она находится. (То есть: в строке заголовка найдите «Электронная почта» в столбце «С» и верните число «3»).До сих пор мне удалось обнаружить, что оператор if не работает.Я довольно плохо знаком с этим языком, поэтому любая помощь будет принята с благодарностью.

function findEmail(){
  var searchString = "Email";
  var data = sheet.getDataRange().getValues();
  var row = 1;
  var columnValues = sheet.getRange(row, 3, sheet.getLastRow()).getValues(); //1st is header row
  var EMCol = columnValues.findIndex(searchString); //Row Index - 2\
  var i;
  for(i = 0; i<data.length;i++){
    var j;
    SpreadsheetApp.getActiveSheet().getRange('E2').setValue('Hello');
    if(data[0][i] == EMCol){
      SpreadsheetApp.getActiveSheet().getRange('E3').setValue('World');
//      Logger.log((i+1))
//      j = i+1
//      return i+1;
    }
    return j;
  };
}

Так выглядит лист после запуска.Как вы видите, внутри оператора if ничего не видно, поэтому «Мир на E3» отсутствует.

1 Ответ

0 голосов
/ 07 июня 2018

Когда я запускаю ваш код, я получаю TypeError, GAS не имеет метода findIndex().Если вы просто хотите найти индекс столбца, тогда эта функция должна выполнить эту работу.

Я не уверен, чего вы пытаетесь достичь с помощью линий Hello и World.

function findEmail() {
    var searchString = "Email";
    var data = sheet.getDataRange().getValues();
    var columnIndex;

    for (var i = 0; i < data[0].length; i++) {
        if (data[0][i] == searchString) {
            columnIndex = i + 1;
            break;
        }
    }
    Logger.log(columnIndex);
    return columnIndex;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...