автоматическое удаление (или добавление) строки на основе изменения запроса в скриптах - PullRequest
0 голосов
/ 17 мая 2019

У меня есть запрос, содержащий информацию с другого листа, имена и тому подобное.А в столбце C у меня есть скриптовая функция, которая добавляет и удаляет раскрывающийся список подтверждения данных, если новые имена добавляются или удаляются.Он основан на функции getFirstEmptyRow() из stackoverflow.com / questions / 6882104 .Работает как задумано.Однако, если источник запроса изменяется, имена будут смещаться вниз или вверх в зависимости от того, какая строка была вставлена ​​или удалена.Мне было интересно, есть ли способ найти первую измененную строку и вставить или удалить ячейку в столбце C в этой строке, чтобы сдвинуть все значения в столбце C со смещенными именами?

Вот что яработаю с:

///Functions to automatically add and replace dropdown boxes
function onChange(e){
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var FirstEmptyA = getFirstEmptyRow('A:A');

  var FirstEmptyC = getFirstEmptyRow('C:C');
  var dif = Math.abs(FirstEmptyA - FirstEmptyC);
    Logger.log(dif);
  var EmptyArow =ss.getRange(FirstEmptyA ,3)
  var validationList = SpreadsheetApp.newDataValidation().requireValueInList(['PLACE','BATH','BANK','SCHOOL'], true).build()
  if(FirstEmptyA - FirstEmptyC < 0){
      var rangedif =ss.getRange(FirstEmptyA+1,3,dif)
        rangedif.clearDataValidations();
    rangedif.clearContent();
  }
 else if(FirstEmptyC - FirstEmptyA < 0) {
     var rangedif =ss.getRange(FirstEmptyC +1,3,dif)
     rangedif.setDataValidation(validationList); 
        rangedif.setValue('PLACE');
  }
}
function getFirstEmptyRow(range) {
  var spr = SpreadsheetApp.getActiveSpreadsheet();
  var column = spr.getRange(range);
  var values = column.getValues();
  var ct = 0;
  while ( values[ct] && values[ct][0] != "" ) {
    ct++;
  }
  return (ct);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...