Поиск ячейки с тем же значением, что и у функции, из журнала доступа

#javascript #google-apps-script #google-sheets

#javascript #google-приложения-скрипт #google-таблицы

Вопрос:

У меня есть этот фрагмент кода, который должен принимать функцию getUserEmail() (которая отлично работает), затем просматриваю каждую строку моего журнала доступа, и если он находит то же электронное письмо, берем столбец слева от него, где находится имя. Atm возвращает только мое значение else, то есть, если он не может найти пользователя по электронной почте, он просто возвращает электронное письмо.

 function getUserName()  {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Access List");
  var lastRow = sheet.getLastRow();
  var userEmail = getUserEmail();
  var userName = "";

  for (var row = 1; row <= lastRow; row  ){ 
    var EmailRange = sheet.getRange(row, 4).getValue();
      if(userEmail == EmailRange) {
         var userName =  sheet.getRange(row, 3).getValue();
         return userName;
      }
       else if (userName == ""){
         return userEmail;
      }
    }
}
  

Комментарии:

1. Вы передаете, [i] который является массивом, в sheet.getRange(), попробуйте передать просто i вместо этого.

2. Заметил это и что-то еще, однако он по-прежнему анализирует else каждый раз, когда обновляется фрагмент

Ответ №1:

Итак, если кто-нибудь наткнется на это, я заставил это работать, изменив свой первый код

 function getUserName()  {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Access List");
  var lastRow = sheet.getLastRow();
  var userEmail = getUserEmail();

  //Logger.log(userEmail);
  //Logger.log(lastRow);

  for (var i = 1; i <= lastRow; i  ) { 
      //Logger.log(sheet.getRange(i,4).getValue());
      if(userEmail == sheet.getRange(i,4).getValue()) {
         return sheet.getRange(i, 3).getValue();

      }
      else if(i == lastRow) {
      return userEmail;
    }
  }
}
  

Работает как шарм

Комментарии:

1. Пожалуйста, опишите изменения, которые вы внесли в код по вопросу

2. На самом деле я не знаю, однако все это начало работать после того, как я использовал свою переменную i в операторе else if. Возможно, там есть необходимое соединение для его работы. И я больше не определяю переменную в цикле for