Как скриптом запретить перенос ячейки, но при этом разрешить копирование и очищение ячейки?
В целом, я согласен с Александром.
Скрипт, действительно, не может сделать то, что вы хотите

Но есть одна функция, которая косвенно может решить вашу проблему. Это функция ДВССЫЛ или INDIRECT.
Если вы вместо =$A$1 напишете =INDIRECT("A1"), то формула всегда будет брать значения из ячейки A1, даже если она будет передвинута или, например, будет добавлен столбец или строка
Это неверное представление о Таблицах и Скриптах.

Скрипты - серверное приложение для взаимодействия с данными Таблиц, а не для управления их интерфейсом.

Все что вы можете сделать из меню Таблицы, вы можете сделать и из скриптов. Проще всего представить Таблицы как самостоятельное веб-приложение без возможности автоматизации его опций, а Скрипты как сервис обработки данных, которые содержатся в Таблицах. Это не совсем так, но при детальном изучении становится понятно, что любые размышления в сторону выпадающих списков, реакций на действия пользователя и т.п. лишены каких-либо приличных примеров с использование Скриптов.

Только Гугл может это сделать. Поэтому ответом на ваш вопрос будет совет отправить предложение по улучшению непосредственно из меню Таблиц.

Добавлено


Хороший комментарий от @ForestAndGarden
