This media is not supported in your browser
VIEW IN TELEGRAM
Добрый день!
Довольно часто в своей работе нам приходится иметь дело с защищёнными диапазонами или листами. Мы ставим защиту для того, чтобы случайно ну или преднамеренно не изменить данные.
В таблицах есть штатная функция, которая подсвечивает защищённые диапазоны на листе, но она работает не всегда, о чем мы ранее писали.
Мы написали небольшой скрипт, который подсвечивает защищённые диапазоны, а также может одним цветом выделить все защищённые листы.
Делайте копию этой таблицы, скрипты в ней.
📗 Канал и Чат
📕 Оглавление канала
🏄 Заказ работы у нас
Довольно часто в своей работе нам приходится иметь дело с защищёнными диапазонами или листами. Мы ставим защиту для того, чтобы случайно ну или преднамеренно не изменить данные.
В таблицах есть штатная функция, которая подсвечивает защищённые диапазоны на листе, но она работает не всегда, о чем мы ранее писали.
Мы написали небольшой скрипт, который подсвечивает защищённые диапазоны, а также может одним цветом выделить все защищённые листы.
Делайте копию этой таблицы, скрипты в ней.
Пример кода:
function onOpen() {
SpreadsheetApp
.getUi()
.createMenu('| ПОДСВЕТКА |')
.addItem('Активировать подсветку защищённых диапазонов', 'fire')
.addItem('Деактивировать подсветку защищённых диапазонов', 'clearfire')
.addSeparator()
.addItem('Активировать подсветку защищённых листов', 'fireSh')
.addItem('Деактивировать подсветку защищённых листов', 'clearFireSh')
.addToUi();
}
/////////////////////////////////////////////////////////////
function fire() {
const ss = SpreadsheetApp.getActive();
const sh = ss.getActiveSheet();
const prs = sh.getProtections(SpreadsheetApp.ProtectionType.RANGE);
prs.forEach(x => {
if (x.canEdit()) {
x.getRange().setBackground('#00ff00');
};
});
ss.toast('Подсветка защищённых диапазонов активирована!')
}
/////////////////////////////////////////////////////////////
function clearfire() {
const ss = SpreadsheetApp.getActive();
const sh = ss.getActiveSheet();
const prs = sh.getProtections(SpreadsheetApp.ProtectionType.RANGE);
prs.forEach(x => {
if (x.canEdit()) {
x.getRange().setBackground(null);
};
});
ss.toast('Подсветка защищённых диапазонов деактивирована!')
}
/////////////////////////////////////////////////////////////
function fireSh() {
const ss = SpreadsheetApp.getActive();
const sh = ss.getSheets();
sh.forEach(x => {
let pr = x.getProtections(SpreadsheetApp.ProtectionType.SHEET)[0];
console.log(pr[0])
if (pr && pr.canEdit()) { x.setTabColor('red') }
});
ss.toast('Подсветка защищённых листов активирована!')
}
/////////////////////////////////////////////////////////////
function clearFireSh() {
const ss = SpreadsheetApp.getActive();
const sh = ss.getSheets();
sh.forEach(x => {
let pr = x.getProtections(SpreadsheetApp.ProtectionType.SHEET)[0];
console.log(pr)
if (pr && pr.canEdit()) { x.setTabColor(null) }
});
ss.toast('Подсветка защищённых листов деактивирована!')
}
📗 Канал и Чат
📕 Оглавление канала
🏄 Заказ работы у нас
🔥16👍7👎2😎1