Сценарий приложения проверяет, содержит ли столбец дату записи определенного слова в определенный столбец

я получаю текущую дату и время в столбце. Но мне нужно изменить столбец только в том случае, если в ячейках COLUMNTOCHECK (3) есть текст «назначить».

В тот момент, когда ячейка в столбце 3 изменяется, все ячейки в столбце 11 изменяются на текущее время. следует изменить только ячейку в столбце 11, которая находится в той же строке, что и последнее измененное «назначение».

Итак, что мне нужно; если 1 ячейка в столбце 3 получает значение «назначить», текущая дата-время должна отображаться в той же строке и столбце 11. В тот момент, когда тот же вызов меняется на что-то другое, дату-время не следует трогать!

Мне нужно получить текущее время, когда в конкретной ячейке появилась ошибка. Моментом появления ошибки является момент, когда ячейка в столбце 3 получает значение «назначить».

var COLUMNTOCHECK = 3;
var DATETIMELOCATION = [0,11];
var SHEETNAME = 'Blad1'

function onEdit(e) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();  
if ( sheet.getSheetName() == SHEETNAME ) { 
  var selectedCell = ss.getActiveCell();    
if ( selectedCell.getColumn() == COLUMNTOCHECK && ) { 
  var dateTimeCell = 
   selectedCell.offset(DATETIMELOCATION[0],DATETIMELOCATION[1]);
  dateTimeCell.setValue(new Date());
  }
 }
}


// i tried other code but this one gives no result back; 

function test(test1){
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var sheet = ss.getActiveSheet()  

  var data = sheet.getDataRange().getValue();
  var data_length = data.length;  
for(var i=0; i<data_length; i++) {
   if (data[i][0] == "assign") {
  ss.getRange(i+1,11).setValue((new Date()));

  }
 }

}

Мне нужен результат даты и времени в конкретной ячейке, например 29-5-2019 11:33:26:

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
405
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это должно делать именно то, что вы ожидаете.

Примечание: вы не сможете запустить это вручную, оно запустится автоматически при редактировании листа.

function onEdit(e) {
  var sh = e.source.getActiveSheet();
  var col = e.range.getColumn();
  var val = e.range.getValue();

  //check if sheet is 'Blad1', column edited is 'C' & value is 'assign'
  if (sh.getSheetName() === 'Blad1' && col === 3 && val === 'assign') {
    var row = e.range.getRow();
    var tz = e.source.getSpreadsheetTimeZone();
    var date = Utilities.formatDate(new Date(), tz, 'dd-MM-yyyy hh:mm:ss a');

    //set date in column 11 for same row
    sh.getRange(row, 11).setValue(date);
  }
}

Время для этого скрипта основано на текущих настройках часового пояса вашей электронной таблицы, как вы можете видеть в var tz. Их можно очень легко изменить в зависимости от ваших потребностей, вот несколько примеров, если вам нужно изменить их в соответствии с вашими требованиями.

//use spreadsheet timezone setting
var tz = e.source.getSpreadsheetTimeZone();

//use script timezone setting
var tz = Session.getScriptTimeZone();

//enter your own time zone
var tz = 'GMT+0';

Это именно то, что я искал! Спасибо добрый сэр!!

AndroidzZ 29.05.2019 15:58

Другие вопросы по теме