Виктор Л, думал про историю изменения самих доков, но она не регает все изменения в доке. Если что-то серьезно изменить, то да регент, а если например 4 поменять на 5, то не запишет в историю эти изменения
datka , сделал по-другому
function newlist() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getSheetByName('LIST1');
if (sh !== null) {
sh.activate();// make this sheet active
Logger.log(sh.getName()); // log: Sheet1
ss.duplicateActiveSheet();
Виктор Л, не знаете как заменить вот эту строчку " sheet.getRange(1, 1, maxRows, maxColumns).setBackground(null);" для того чтобы не слетала цветовая заливка во всей таблице?
Владимир, В ячейку A6 у меня значения перетягиваются при помощи importrange с другого документа, далее из ячейки A6 значения при помощи формулы автоматически перетягиваются в ячейку A473, на этом моменте скрипт не хочет работать. Извиняюсь за наглость, может есть возможность связаться по видеосвязи?
Владимир, спасибо большое за рабочий скрипт. Правда спасибо, но у меня проблема что значения в ячейку подгружаются путем присваивания A6=A$473$ и так получается что скрипт не работает без события.
Владимир, сейчас не могу, уехал от рабочего места. До этого пытался перевести функцию на события построчно
пока написал так, пока не работает времени нет доработать ...
function onEdit(e){
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var row = e.range.getRow();
var colum = e.range.getColumn();
var value = e.source.getActiveSheet.getRange(row, 1).getValue();
var range1 = SpreadsheetApp.getActive().getRange('D45:D50');
var range2 = SpreadsheetApp.getActive().getRange('C45:C45');
var cell2_1 = SpreadsheetApp.getActive().getRange("B46").getValue();
if (colum == 1 && value =="B46"){
var rule = SpreadsheetApp.newDataValidation().requireValueInRange(range1).build();
cell.setDataValidation(rule);
Владимир, решил написать примерно то что вы обозначили выше, но состоящих из 2 диапазонов которые могут заполнить 3 по условию. Теперь надо построчно прописать изменения, то есть A1=Брак, то B1=Запрет
function somname(){//функция которая проверяет два массива данных и сводит один по условию
var cell = SpreadsheetApp.getActive().getRange('A46:A50');
var range = SpreadsheetApp.getActive().getRange('D45:D50');
var range2 = SpreadsheetApp.getActive().getRange('C45:C45');
var cell2 =SpreadsheetApp.getActive().getRange('B46').getValue();
if(cell2=="Брак"){
var rule = SpreadsheetApp.newDataValidation().requireValueInRange(range2).build();
cell.setDataValidation(rule);}
else{var rule = SpreadsheetApp.newDataValidation().requireValueInRange(range).build();
cell.setDataValidation(rule);};
Владимир Юрченков открыл, но не нашел защита по условию. Мне нужно если в ячейке A1 есть Брак, то B1 блочилась для ввода данных и так по всему диапазону
Александр, Есть возможно странный вариант. У меня диапазон заданный, возможно если весь диапазон сделать строго заданным $$, то изменения смогут быть произведены
Александр , решил вывести весь диапазон просто использовав SORT(Диапазон). При этом теперь значения выводятся и даже могут изменять свои позиции но при использовании встроенного функционала по сортировке на выгруженный диапазон SORT(), значения в диапазоне исчезают.