Apps Script находит первую пустую ячейку в столбце, но начиная с указанной строки c - PullRequest
0 голосов
/ 03 марта 2020

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

Я создал функцию однако, чтобы скопировать эти данные, он не останавливается, когда достигает пустого значения, а продолжается до конца столбца. Однако был задан аналогичный вопрос, который ищет весь столбец, а не начинается с определенной c точки.

Мне кажется, что я немного запутываю проблему, поэтому приведу пример:

Engli sh Данные отдела начинаются со строки 3, данные о персонале находятся в столбце H до строки 20.

Данные отдела математики начинаются со строки 30, данные о персонале повышены в строку 45.

Моя функция должна выбрать Engli sh в столбце A, переместиться в столбец H, сосчитать количество ячеек до строки 20 и скопировать эти значения в форму, которую я настраиваю.

Я создал функцию, которая находит название отдела, и функцию, которая просматривает все темы, я просто не могу найти способ поиска до первой пустой ячейки из строки x.

Код, который я нашел в другом вопросе, взят от Дона Киркби следующим образом:

 function getFirstEmptyRow() {
  var spr = SpreadsheetApp.getActiveSpreadsheet();
  var column = spr.getRange('A:A');
  var values = column.getValues(); // get all data in one call
  var ct = 0;
  while ( values[ct][0] != "" ) {
    ct++;
  }
  return (ct);
}

Просто для добавления функции необходимо использовать в приведенной ниже функции, поэтому копируйте все значения до тех пор, пока она не достигнет пробела и вставьте эти значения в форму:

function countTargetTeacher(myRowOfTarget) {
  var teachRow = targetSheet.getRange(myRowOfTarget, 8).getValues();
  var targetTeacherRange = targetSheet.getRange(myRowOfTarget, 8, teachLastRow, 3).getValues();
  sheet.insertRowsAfter(teacherRow, teachLastRow);
  sheet.getRange(teacherRow + 1, 1, teachLastRow, 3).setValues(targetTeacherRange);
  // deleteBlankRows()  // https://stackoverflow.com/questions/43522602/filter-data-by-column-k-in-google-script-editor-google-sheets
}

Извините за длинную почту, любая помощь будет оценена.

Спасибо

Fazila

1 Ответ

0 голосов
/ 03 марта 2020

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

function countCellForTargetSheet(myRowOfTarget, column) {
  var columnRange = targetSheet.getRange(myRowOfTarget, column, targetSheetLength);
  var columnVals = columnRange.getValues();

  var lastCell = myRowOfTarget

  for (i = 1; i < columnVals.length; i++) {
    if (columnVals[i][0] == "") {
      break;
    } else {
      lastCell = lastCell + 1;
    }
  };

  return lastCell;
}

:)

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