TGViewer
Google Таблицы Google Таблицы @google_sheets · 60.2K subscribers
Post #1605 9.94K
Добрый день!

Довольно часто в своей работе нам приходится иметь дело с защищёнными диапазонами или листами. Мы ставим защиту для того, чтобы случайно ну или преднамеренно не изменить данные.

В таблицах есть штатная функция, которая подсвечивает защищённые диапазоны на листе, но она работает не всегда, о чем мы ранее писали.

Мы написали небольшой скрипт, который подсвечивает защищённые диапазоны, а также может одним цветом выделить все защищённые листы.

Делайте копию этой таблицы, скрипты в ней.

Пример кода:

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
More from @google_sheets
  1. Oct 2, 2026Скоро расскажем, как мы создали систему для dog walker в Петербурге 🐕 Люди гуляют с собак…
  2. Sep 29, 2026📶Автоматически обновляемый дашборд из 1С, который помогает смотреть на цифры не как на де…
  3. Sep 26, 2026Google Таблицы pinned Deleted message
  4. Sep 26, 2026Это очень интересная тема - "как я по-настоящему влюбился в таблицы в 2017". Если вам инте…
  5. Sep 26, 20262️⃣ Вторая статья там же: "Буби, крести, пики. Или своя CRM-система в Гугл Таблицах за пар…
  6. Sep 26, 2026Друзья, всем отличной субботы! ☀️ Вспомним, с чего начинался наш канал 👀 1️⃣ Статья на Ха…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →