Здравствуйте, есть таблица в Google Sheets, сделали скрипт на два действия:
1) Автоматическая простановка даты, при появлении записи в ячейке
2) При появлении в ячейке определенной записи товара, в соседней ячейке скрипт добавляет выпадающий список с выбором модели товара
Все это должно происходить только в одном листе, не затрагивая другие
Проблема:
Скрипт даты работает нормально на этом листе, а вот скрипт выпадающего списка действует на все листы в нашей таблице. В чем ошибка?
В примере уже есть попытки ограничить листы, но не помогает, выдает ошибку, поэтому пока оставили, как комментарий.
(При активировании второй строки попыток ограничить листы, выдает ошибку в 18 строке)
Помогите пожалуйста
Ссылка на пример таблицы, в листе статистика второй скрипт тоже работает, но не должен:
https://docs.google.com/spreadsheets/d/1zHuFzuxfCr...
Скрипт:
function onEdit(e) {
{
var str = e.range.getRow();
var stolb = e.range.getColumn();
if (stolb == 4 && e.source.getActiveSheet().getName() == "Заказы"){
e.source.getActiveSheet().getRange(str,2).setValue(new Date());
}
{
//Попытка ограничить листы
//if (ss.getActiveSheet().getName()==="Заказы")
//if (e.source.getActiveSheet().getName()==="Заказы")
let ss = SpreadsheetApp.getActiveSpreadsheet();
let sheet = ss.getSheetByName("Заказы");
let sheetDb = ss.getSheetByName("Диапазон");
let ar = sheet.getActiveCell();
if(ar.getColumn()!==6){return}
let valToFind = ar.getValue();
//Удаление записи при изменении товара
//ar.offset(0, 2).clearContent().clearDataValidations();
let values = sheetDb.getRange(1,1,1,sheetDb.getLastColumn()).getValues();
let col = values[0].indexOf(valToFind)+1;
console.log(col);
let range = sheetDb.getRange(3, col, 30, 1);
console.log(range);
let validation = SpreadsheetApp.newDataValidation().requireValueInRange(range).build();
//shet.getRange(ar.getRow(), 8).setDataValidation(validation)
ar.offset(0, 2).setDataValidation(validation);
}
}
}