Как получить значения из последней строки - PullRequest
0 голосов
/ 05 апреля 2019

Я создал форму для запроса новой учетной записи Google для студентов.Я хочу, чтобы Скрипт листов отправил по электронной почте человеку, который отправляет Форму, информацию о новой учетной записи, которая создается с помощью формулы на листе «Результаты».

function Notification() {
  // Send email notice for accounts
  var lastRow = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Results").getLastRow();
  var range = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Results").getRange("A" + lastRow);
  if (range.getValue() !== "") {
    return lastRow;
  } else {
    return range.getNextDataCell(SpreadsheetApp.Direction.UP).getRow();
  var AccountName = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Results").getRange("H" + lastRow);
  var Password = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Results").getRange("I" + lastRow);
  var PW = Password.getValue();
  var Account = AccountName.getValue(); 
  // Fetch the email address
  var emailRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Results").getRange("G" + lastRow);
  var emailAddress = emailRange.getValues();
// Send Alert Email.
   var message = 'Account Request - Account Name: ' + Account + ' Password: ' + PW; // Second column
   var subject = 'Google Account Request';
MailApp.sendEmail(emailAddress, subject, message);
     }

Этот скрипт запускается при новой отправке формы.Попытка извлечь значения из последней созданной строки, запрошенной на листе «Результаты», используя lastRow для поиска строки последних записей, из выбранных столбцов.Сценарий выполняется без ошибок, но электронное письмо не отправляется, сообщая, что оно не получает значения, или возвращает нулевые значения. Это лист данных о потягивании от

1 Ответ

0 голосов
/ 12 апреля 2019

Вы отправляете только строку 2, поскольку извлекаете только одно значение (Password.getValue() и AccountName.getValue()). Рассмотрим разницу между getValue против getValues.

С другой стороны, объявляя диапазон, такой как getRange("H2:H") («Имя учетной записи»), вы включаете каждую строку в таблицу, включая строки с содержимым и без него.

Как мне заставить его извлекать значения из последней созданной строки?

Есть два варианта:

  • getlastRow() (версия «Лист» или «Диапазон») «возвращает позицию последней строки с содержанием» ссылка здесь . Фактически, этот элемент документации имеет хороший пример того, как объявить Range с помощью команды.
  • есть еще одна (очень полезная) утилита , описанная в StackOverflow , которая является моей любимой. Здесь описывается количество смежных строк в столбце с содержимым.

Я предлагаю вам объявить диапазон, используя getRange(row, column, numRows, numColumns).
«row» был определен с использованием одного из методов, описанных выше, «numRows» = 1. Тогда getValues для этого диапазона будет включать только значения в этой строке, и ваше электронное письмо будет отправлено только относительно этой строки.

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