Ответ:
К сожалению, это невозможно сделать.
Дополнительная информация:
Основная причина, по которой это не может быть сделано то, что Sheets API и Google Apps Script не имеют прослушивателей, когда активная ячейка на листе изменяется. Кроме того, нет прослушивателей, нажимающих кнопки или кнопки, если нажимаются кнопки или кнопки не вносить изменения или изменения в лист.
Тестирование и обоснование:
У меня возникла путаница с Приложением Script, чтобы выяснить, Я мог бы создать какой-то обходной путь, хотя это заканчивалось столкновением с другими препятствиями.
Там - это способ заставить фон активной строки менять цвет, что можно легко сделать в Apps Script с чем-то вроде:
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var currRow = ss.getActiveCell().getRow();
sheet.getRange(currRow + ":" + currRow).setBackground("#F4C2C2");
Зная это и зная, что я не могу вызвать триггер одним щелчком, я создал вместо этого надстройку Sheets с встроенной в нее функцией JavaScript. документа HTML, который вызывает s Метод сценария приложения с указанным c интервалом времени:
<script>
function poll() {
setInterval(update, 500);
}
function update() {
google.script.run.rowHighlighter();
}
</script>
со следующей функцией rowHighlighter()
внутри файла code.gs
:
function rowHighlighter() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var currRow = ss.getActiveCell().getRow();
var l = PropertiesService.getUserProperties().getProperty("currRow");
if (l) {
sheet.getRange(l + ":" + l).setBackground("#FFFFFF");
}
sheet.getRange(currRow + ":" + currRow).setBackground("#F4C2C2");
PropertiesService.getUserProperties().setProperties({"currRow": currRow});
}
Я думал, что это Можно было бы вызвать эту функцию из боковой панели надстройки Sheets и использовать класс Apps Script PropertiesService
для сохранения текущей выбранной строки, чтобы при щелчке в другом месте цвет можно было сбросить.
Хотя это, казалось, дало положительные результаты, это продолжалось всего несколько секунд - к сожалению, после этого квоты на скрипты приложений попадают, а ошибки в консоли, как видно из конца редактора скриптов приложений, показывают, что необходимо некоторое регулирование поэтому не так много запросов скриптов приложений. Конечно, хотя это и есть то, что вы могли бы сделать * 1040, увеличение интервала, с которым функция update()
вызывается в дополнении <body>
, снижает реальную актуальность приложения и всю функциональность. перерывы.
Короче; это не может быть сделано Как скрипту приложений, так и API листов не хватает функциональности, и попытка создать что-то, что имитирует его, приведет к тому, что вы будете использовать всю свою квоту, когда ограничения учетной записи будут нарушены.
Я знаю, что это, как правило, плохие новости, но Надеюсь, это вам пригодится!
Ссылки: