#google-apps-script #google-sheets
#google-приложения-скрипт #google-листы
Вопрос:
Я новичок в этом деле, так что спасибо вам за вашу помощь и ваше терпение.
Пример: У меня есть общая электронная таблица с защищенным диапазоном «Y:Y», в которой коллеги обновляют позиции. Один элемент строки, который мы хотим отметить, когда они изменят его, находится в столбце «X:X».
Мое желание состоит в том, чтобы настроить триггер, который запускается каждые 24 часа, и он копирует значения в столбце «X:X» и вставляет их в пустые или пустые значения в столбце «Y:Y».
Тогда простая формула DAX будет сравнивать X с Y. Это упростило бы сценарий, который я сейчас использую, который запускается каждый раз при редактировании.
function OnEdit() { var s = SpreadsheetApp.getActiveSheet(); if( s.getName() == "PTL" ) { //checks that we're on PTL or not if( s.getActiveCell().getColumn() == 7 ) { //checks that the cell being edited is in column G var modify = s.getActiveCell().offset(0, 7); modify.setValue(new Date()); var baseline = s.getActiveCell().offset(0, 6); if( baseline.getValue() === '' ) //checks if the adjacent cell is empty or not? baseline.setValue(new Date()); } } }
Ответ №1:
Попробуйте сделать это таким образом:
function OnEdit(e) { var sh = e.range.getSheet(); if (sh.getName() == "PTL" amp;amp; e.range.columnStart == 7) { e.range.offset(0,7).setValue(new Date()); if (e.range.offset(0, 6).getValue() == '') e.range.offset(0,6).setValue(new Date()); } } function notsurewhatyouwant() { const ss = SpreadsheetApp.getActive(); const sh = ss.getSheetByName('PTL'); const xy = sh.getRange(1, 24, sh.getLastRow(), 2).getValues(); xy.forEach((r, i) =gt; { if (r[1] == null) { sh.getRange(i 1,25).setValue(r[0]); } }); } function createTrigger() { if(ScriptApp.getProjectTriggers().filter(t =gt; t.getHandlerFunction() == "notsurewhatyouwant").length == 0) { ScriptApp.newTrigger('notsurewhatyouwant').timeBased().everyDays(1).atHour(0).create(); } }
Комментарии:
1. Я не понимаю вашего последнего комментария. Возможно, вы сможете сделать пример более понятным, опубликовав его в своем вопросе. Но да, было бы полезно привести примеры ввода и желаемого вывода.