Где Столбец Y Пуст, Заполните Значение Из Столбца X

#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. Я не понимаю вашего последнего комментария. Возможно, вы сможете сделать пример более понятным, опубликовав его в своем вопросе. Но да, было бы полезно привести примеры ввода и желаемого вывода.