Редактор сценариев Google Sheets - создание временной метки и сохранение ее после первой записи - PullRequest
0 голосов
/ 27 февраля 2020

Я новичок в редактировании скриптов в Google Sheets. Я пытаюсь создать метку времени в ячейке в строках 31 и 32, когда ввод получен в строках 13 и 19. Строка 13 предназначена для ввода имен, а строка 19 - для отслеживания завершения проектов. Имена проектов будут меняться на протяжении всего периода, поэтому после создания имени в ячейке я хочу убедиться, что отметка времени не изменится. Любые идеи о том, как сделать эту работу?

Редактируемая ссылка на пример листа, который я создаю: https://docs.google.com/spreadsheets/d/1bsA8h0VGudmvB_qHOJrpz4UI9aRvIwRLXR3086rWAVw/edit?usp=sharing

Текущий сценарий, который я создал:

function onEdit(e) {

var row = e.range.getRow();
var col = e.range.getColumn();

if(col === 13){
e.source.getActiveSheet().getRange(row,31).setValue(new Date()); 
if(e.source.getActiveSheet().getRange(row,31).getValue() == ""){
}
}

if(col === 19){
e.source.getActiveSheet().getRange(row,32).setValue(new Date()); 
}




}

1 Ответ

0 голосов
/ 28 февраля 2020

В вашем случае я бы порекомендовал вам использовать метод getCell(row, column), а затем оценить, является ли ячейка пустой, используя метод isBlank(). Это пример кода, который поможет вам:

function onEdit(e) {
  var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var row = e.range.getRow();
  var col = e.range.getColumn();
  // col M = 13, col S = 19
  if(col === 13) setTimestamp(ss, row, 31); // col AE = 31
  else if(col === 19) setTimestamp(ss, row, 32); // col AF = 32
}

function setTimestamp(ss, row, col){
  // Get the modified Cell
  var cell = ss.getRange(row, col).getCell(1, 1); 
  var isCellBlank = cell.isBlank();
  // Check if it's blank
  if(isCellBlank) cell.setValue((new Date()));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...