Получить соответствующий массив строк активной ячейки с другого листа - PullRequest
1 голос
/ 12 мая 2019

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

  if(activeCell.getColumn() == 2 && activeCell.getRow() > 1){

    activeCell.offset(0, 1).clearContent().clearDataValidations();

    var item = itemDVss.getRange(activeCell.getRow(),activeCell.getColumn(),itemss.getLastColumn()).getValues();
    var itemIndex = item[0].indexOf(activeCell.getValue()) + 2;

    if(itemIndex != 0){

      var itemValidationRange = itemDVss.getRange(itemIndex,3,itemDVss.getLastColumn());
      var itemValidationRule = SpreadsheetApp.newDataValidation().requireValueInRange(itemValidationRange).build();

      activeCell.offset(0, 1).setDataValidation(itemValidationRule);

    }
  }

Скрипт должен найти активную ячейку в листе «Оценка» и вернуть соответствующие значения из листа «Товары» (смещение на +1 столбец). Поэтому, находясь в ячейке Estimate! B11, скрипт должен вернуть массив строк из Items! C11 в последний столбец.

Сметная ведомость

dynamicDropDowns.gs строка 34

1 Ответ

1 голос
/ 12 мая 2019

Нет ничего "легкого", когда вы только начинаете изучать это.В любом случае, я получил его, изменив

var itemValidationRange = itemDVss.getRange(itemIndex,3,itemDVss.getLastColumn());

на

var itemValidationRange = itemDVss.getRange(activeCell.getRow(),3,1,itemDVss.getLastColumn());

Возможно, это не лучший метод, но он работает!

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