@CREWbig

Как сделать очистку ячеек выбранного диапазона при активации другой?

Ребята,помогите написать скрипт,чтоб при активной ячейки B2 производилась очистка ячеек A2:B28?
  • Вопрос задан
  • 4245 просмотров
Решения вопроса 1
ProgrammerForever
@ProgrammerForever Куратор тега Google Apps Script
Учитель, автоэлектрик, программист, музыкант
Что значит "активная"? Нет события "активная ячейка" но есть событие "ячейка изменилась" - onEdit(event)
Вот заготовка кода для этой функции:
function onEdit(event) {
	//Возникает при изменении ячейки
	var ss = event.source.getActiveSheet();//Текущий лист
  	var address = event.range.getA1Notation().toUpperCase();//Адрес ячейки
	var row = event.range.getRow();							//Номер строки
	var col = event.range.getColumn();						//Номер столбца
	var newValue = event.value;								//Новое значение
	var oldValue = event.oldValue;							//Старое значение
	
  if (["Лист1","Лист2"].indexOf(ss.getName())==-1) return;	//Указываем на каких листах должен работать скрипт
	
	//Что-то делаем...
  };

Вместо "Что-то делаем" впишите нужные действия, например, очистку диапазона. Код для очистки можно сделать макрорекордером Инструменты - Макросы - Записать макрос
1) Запись
2) Выделить диапазон
3) Del
4) Стоп записи
Или использовать такой код:
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Лист1").getRange("A2:B28").clear();

Но тут есть момент - эта очистка на том же листе может снова спровоцировать onEdit() и надо с этим бороться, проверяя какой диапазон меняется перед тем как что-то очистить
if (address !="B2") return;
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы