Я создаю надежный (отфильтрованный) раскрывающийся список в листе Google, где значение в одном раскрывающемся списке зависит от выбора другого. Несмотря на довольно простое расположение, я столкнулся с проблемой getValues ()
который возвращает 2D массив.
Есть следующие настройки:
- Два листа, один Задание и другой $ SheetData .
- Столбец E Activity содержит раскрывающиеся списки, которые при выборе должны обеспечивать соответствующий выбор в столбце G.
- Данные для столбца E получены из листа $ SheetData (E1: K1);
- Данные для столбца G получены из листа $ SheetData из каждого из соответствующих столбцов (E1 = SIRE: SIRE1, SIRE2 и т. Д.);
- Когда SIRE выбрано в Col E Activity , мне нужно, чтобы данные в столбце G были из E2: E $ SheetData
Вот мой код:
function dependableDropdown() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var activity = ss.getSheetByName("Activity");
var sheetData = ss.getSheetByName("$SheetData");
var activeCell = activity.getActiveCell();
if(activeCell.getColumn() == 5 && activeCell.getRow() > 1){
activeCell.offset(0, 2).clearContent().clearDataValidations();
var inspectionTypes = sheetData.getRange(1, 5, 1, 7).getValues();
var selectedValue = activeCell.getValue();
var inspectionTypesIndex = inspectionTypes[0].indexOf(selectedValue) + 1;
var validationRange = sheetData.getRange(2, inspectionTypesIndex, sheetData.getLastRow());
var validationRule = SpreadsheetApp.newDataValidation().requireValueInRange(validationRange).build();
activeCell.offset(0, 2).setDataValidation(validationRule);
};
};
Значение, возвращаемое inspectionTypesIndex
, кажется правильным (SIRE = 1, OVID = 2 и т. Д.), Но когда я выбираю данные в столбце E, я получаю неверные данные, введенные в столбец G.
Оцените вашу помощь.
Спасибо,
Соответствующие экраны:
Таблица активности
$ SheetData