Разрыв цикла по нулевому значению - PullRequest
0 голосов
/ 30 сентября 2018

У меня есть один источник Google Sheet, который копирует в несколько разных Google Sheets для разных студентов.Скопированная информация предназначена для разных предметов, каждый из которых представляет собой отдельный лист в файле личных листов студента.

Исходный лист настроен для работы с классами разных размеров, но моя проблема заключается в попытке break кода, когда он достигает раздела без информации.Я не знаю, почему мой оператор break не работает, так как я знаю, что copysheet равно null, так как это приводит к ошибке при каждом запуске кода.

function cloneGoogleSheet() {
  //select source sheet
  var sourcesheet = SpreadsheetApp.openById('some id');

  var j;
  for (var j = 1; j < 36; j++) {
    //select student sheets to copy to
    var studentid = sourcesheet.getSheetByName("Sheet11")
        .getRange(j, 2).getValue();

    var i;
    for (var i = 1; i < 14; i++) { 
      //select subject name for referencing different sheets
      var subject = sourcesheet.getSheetByName("Sheet6")
          .getRange(i + 1, 7 * j - 5).getValue();

      //find correct subject sheet on student sheet
      var copysheet = SpreadsheetApp.openById(studentid).getSheetByName(subject);

      if (copysheet != null) {break;}
      else {
        //copy "importrange" formula from sourcesheet
        var info = sourcesheet.getSheetByName("Sheet6")
            .getRange(i + 1, 7 * j).getValue();

        //copy teacher name from sourcesheet
        var teachername = sourcesheet.getSheetByName("Sheet6")
            .getRange(i + 1, 7 * j - 4).getValue();  

        //copy student name
        var studentname = sourcesheet.getSheetByName("Sheet6")
            .getRange(2, 7 * j - 6).getValue();  

        //paste "importrange" formula into student sheet 
        copysheet.getRange(6, 2).setValue(info);

        //paste teacher name into student sheet
        copysheet.getRange(3, 2).setValue(teachername);

        //paste student name into student sheet
        copysheet.getRange(1, 2).setValue(studentname);
      }
    }
  }
}

1 Ответ

0 голосов
/ 30 сентября 2018

Изменить

if (copysheet != null) {break;}

на

if (copysheet == null) {break;}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...