С помощью видео-руководства, с которым я был связан, я смог написать следующий скрипт, который позволяет мне управлять зависимым раскрывающимся списком в моей электронной таблице
function onEdit(){
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var datass = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Operators");
var activeCell = ss.getActiveCell();
if(activeCell.getColumn() == 10 && activeCell.getRow() > 8){
activeCell.offset(0, 1).clearContent().clearDataValidations();
var headers = datass.getRange(1, 1, 1, 2).getValues();
var headersIndex = headers[0].indexOf(activeCell.getValue()) + 1;
if(headersIndex != 0){
var validationRange = datass.getRange(2, headersIndex, datass.getLastRow());
var validationRule = SpreadsheetApp.newDataValidation().requireValueInRange(validationRange).build();
activeCell.offset(0, 1).setDataValidation(validationRule);
}
}
}
Это работает! !! это фантастика c. Однако у меня есть вопрос, который относится к следующей строке приведенного выше сценария
if(activeCell.getColumn() == 10 && activeCell.getRow() > 8){
Столбец 10 в моей электронной таблице относится к столбцу J, куда зависимый раскрывающийся список в столбце K извлекает свою информацию из предоставить правильную информацию в зависимом выпадающем списке, и с этой строкой, мой скрипт работает нормально. Однако у меня также есть повторы этого в столбцах N (столбец № 14), R (столбец № 18) и V (столбец № 22), которые все предоставляют ту же информацию, что и для столбца J для зависимого раскрывающегося списка в следующем столбце.
Итак, в основном мой вопрос заключается в том, могу ли я включить в этот сценарий номера столбцов 14, 18 и 22, чтобы они работали так же, как столбец 10, сохраняя их независимость друг от друга? - ie в том смысле, что я не хочу выбирать что-то, относящееся к столбцу J, и оно дублируется в столбце N.
Я попытался просто создать следующую строку:
if(activeCell.getColumn() == 10, 14, 18, 22 && activeCell.getRow() > 8){
и это работает в том смысле, что позволяет мне работать со всеми зависимыми раскрывающимися списками независимо друг от друга, как мне требуется. Тем не менее, это приводит к havo c с другой проверкой данных в моей электронной таблице - фактически следующие 2 ячейки после каждого из моих зависимых раскрывающихся списков являются флажками, и при использовании этой измененной строки выбор чего-либо из зависимого раскрывающегося списка фактически вызывает удаление флажка в следующей ячейке - чего я, очевидно, не хочу, чтобы произошло!
Теперь я полностью решил проблему, создав несколько функций в моем сценарии для каждого из моих столбцов, создав следующую команду в верхняя часть моего скрипта
function onEdit(){
j();
n();
r();
v();
}
, а затем установка отдельных функций для каждой из них, и это работает абсолютно идеально. Итак, у меня есть решение, и все же здесь я прошу помощи, и это просто потому, что я бы предпочел, чтобы все было в одном коротком сценарии, чем в 4 или 5 сценариях для каждого из моих столбцов. Возможно ли это или у меня уже есть лучшее решение этой конкретной проблемы?