Ошибка функции: начальный ряд диапазона слишком мал - PullRequest
1 голос
/ 03 октября 2019

В настоящее время я получаю сообщение об ошибке с кодом моего скрипта приложения Google, которое говорит:

Стартовая строка диапазона слишком мала. (строка 48, файл "sendEmail")

Я не уверен, почему он маленький. Строки доходят до M, где размещается строковое значение.

вот мой код:

function myFunction(e) {

  var sheet = SpreadsheetApp.openById("1naSWINA8_uxeLUsj0lFntqILyDj2nirb56uvkBel79Y").getSheetByName("CRM Feedback");

  var ss = SpreadsheetApp.getActive().getSheetByName("Form Responses 1");

  var data = sheet.getRange(4, 1, ss.getLastRow(), ss.getLastColumn()).getValues();

  var manager_email = "thomas.hunt@careertrackers.org.au";

  for( var i = 0; i< data.length;i++ ) {

    var timestamp =             data[i][0];
    var requesterEmail =        data[i][1];
    var starRating =            data[i][2];
    var requestCatergory =      data[i][3];
    var description =           data[i][4];
    var label =                 data[i][5];
    var ticketId =              data[i][6];
    var comment =               data[i][7];
    var status =                data[i][8];
    var priority =              data[i][9];
    var office =                data[i][10];

    var check = data[i][11];
    Logger.log(check)

    var checkTimestamp = data[i][0]
    Logger.log(checkTimestamp)


    if(check == false){
      continue;
    } else {


      var subject = "Weekly Timesheet - ";
      var body = "<body>";
      body += "<div>Hi " + comment
      body += "</body>";



      MailApp.sendEmail(manager_email, subject, body, {htmlBody:body}) 

          var sent_string = "sent";
    //error here
    ss.getRange(i, 12).setValue(sent_string)

    if (sent_string){
      return

    }





    }


  }




}

1 Ответ

1 голос
/ 03 октября 2019

Из документации параметр row для Sheet.getRange принимает целое число, где индекс строки начинается с 1.

В цикле for вы передаете i как строка, а i начинается с 0, поэтому выдает ошибку range is too small. Вы должны передать i + 1 вместо i в качестве параметра row.

for( var i = 0; i< data.length;i++ ) {
    // code here

    ss.getRange(i + 1, 12).setValue(sent_string)

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