Возможно ли в Google sheet защитить определенные столбцы, но разрешить добавление / удаление строк?

#google-sheets #google-sheets-formula

#google-sheets #google-sheets-формула

Вопрос:

Я использую arrayformulas для заполнения определенных столбцов моего листа в зависимости от значений на других листах. Иногда пользователи случайно помещают некоторое значение в эти столбцы, и это останавливает работу arrayformula. Я хочу защитить эти столбцы, но при этом разрешить добавление / редактирование / удаление строк.

Рассмотрим этот пример электронной таблицы: я хочу, чтобы строка идентификатора была защищена, но разрешала добавление / удаление строк.

https://docs.google.com/spreadsheets/d/1Dnj7OE5XZL09gllHVwPgv-5GRoM-lxVCxTCI_-kURdM/edit#gid=0

Возможно ли это вообще с Google Sheets?

Ответ №1:

Вы не можете напрямую отключить ввод, но вместо этого вы можете использовать проверку данных

Перейдя в Data> Проверка данных и заполнив его следующим:

Диапазон ячеек: YourSheet!C2: C

Критерии: Пользовательская формула — = C2: C = A2:A amp; «[«amp; B2: B amp;»]»

Для недопустимых данных: отклонить ввод

Внешний вид: необязательное сообщение

Как только вы это сделаете, попробуйте заполнить какую-либо ячейку в столбце C, и вы увидите сообщение: Возникла проблема — ваше необязательное сообщение

В качестве другого подхода вы можете использовать простые триггеры Apps Script

Перейдя в Сервис> Редактор сценариев и скопировав следующий код:

 function onEdit(e) {
  var column = e.range.getColumn();
  var sheet = SpreadsheetApp.getActiveSheet();
  if (column === 3) {
    e.range.setValue("");
  }
}
 

Что больше похоже на функцию «отменить».

Ссылки

Простые триггеры

Объекты событий> onEdit

Комментарии:

1. Ну, я не хочу использовать apps script, потому что у меня их много, поэтому мне придется реализовать какой-то способ программного добавления к ним кода запуска или их повторного клонирования, что возможно, но требует больших усилий. Однако первое решение является блестящим, единственным недостатком является то, что все ячейки, включенные в диапазон, недействительны, поэтому покажите красный треугольник в углу (см. Мой Лист), что стало бы очень беспорядочным, потому что у меня много таких столбцов. Есть ли способ отключить этот раздражающий красный треугольник?

2. Здравствуйте, да, это возможно, я просто хотел предложить идею в этом конкретном случае, пожалуйста, ознакомьтесь с новым редактированием.

Ответ №2:

строки могут быть добавлены методом перебора с помощью этой формулы:

 =ARRAYFORMULA(ROW(INDIRECT("1:"amp;ROWS(A:A) 1)))
 

но эскалацию нельзя контролировать

Комментарии:

1. Мне это совсем не помогает. Это просто спамит строки. Мне нужно выяснить, возможно ли заблокировать столбцы, не отключая пользователям возможность манипулировать строками.