Столбец автоматического обновления в Google Spreadsheet, показывающий последнюю дату изменения

Попытка выяснить способ автоматического автоматического обновления столбца два, чтобы показать временную метку последнего обновления. Я понимаю, что документ показывает временную метку последней модификации, но у нас есть много клиентов, которые одновременно получают доступ и корректируют документ. Итак, этот запрос был введен. Я признаю, что не сделал кодирования, поэтому это выходит за рамки меня.

Myanda опубликовала что-то, что казалось правильным, но мы не знаем, как реализовать его для наших нужд:

Временная метка электронной таблицы Google?

25 голосов | спросил RichGonzalez 4 Jam1000000amFri, 04 Jan 2013 00:08:44 +040013 2013, 00:08:44

3 ответа


29

Хорошо, здесь приведена модифицированная версия кода в моем предыдущем ответе:

function onEdit(e) {
  // Your sheet params
  var sheetName = "MySheet";
  var dateModifiedColumnIndex = 2;
  var dateModifiedColumnLetter = 'B';

  var range = e.range; // range just edited
  var sheet = range.getSheet();
  if (sheet.getName() !== sheetName) {
    return;
  }

  // If the column isn't our modified date column
  if (range.getColumn() != dateModifiedColumnIndex) { 
    var row = range.getRow();
    var time = new Date();
    time = Utilities.formatDate(time, "GMT-08:00", "MM/dd/yy, hh:mm:ss");
    var dateModifiedRange = sheet.getRange(dateModifiedColumnLetter + row.toString());
    dateModifiedRange.setValue(time);
  };
 };

То, что это делает, - это захват строки любой ячейки, которая была изменена, и присваивает временную метку второму столбцу этой конкретной строки.

Чтобы реализовать, все, что вам нужно сделать, это войти в электронную таблицу и нажать Tools> Script Editor. На появившейся странице редактора просто вставьте это там. Поскольку это функция onEdit(), она должна работать без необходимости добавлять что-либо еще в ячейки вашей электронной таблицы, просто вставлять ее в редактор и сохранять ее.

Для метки времени я задал формат MM /dd /yy и оставил время. Если вы хотите изменить его, вы можете просто изменить использование Utilities.formatDate.

ответил OnenOnlyWalter 4 Jam1000000amFri, 04 Jan 2013 03:35:03 +040013 2013, 03:35:03
8

FYI, принятый ответ использует DD как формат дня, который даст вам что-то вроде «312», т. е. 312-го числа года.

Я использовал это:

"yyyy-MM-dd, hh:mm:ss"

, чтобы получить следующее:

2013-11-12, 03:43:20

Благодаря принятому автоответчику, хотя!

ответил Dan Nguyen 13 32013vEurope/Moscow11bEurope/MoscowWed, 13 Nov 2013 00:45:48 +0400 2013, 00:45:48
3

Надеюсь, это все положено. Ниже приведена модификация вышеприведенной функции, а для нее - строка (строка 9), а не столбцы. Выяснение того, как использовать назначение столбцов, было очень неприятным, но оказалось чрезвычайно простым. Благодаря OnenOnlyWalter для исходного кода:


function onEdit() { 
    var s = SpreadsheetApp.getActiveSheet(); // Get spreadsheet name 
    var r = s.getActiveCell(); // store active cell name in current spreadsheet 
  var cell1 = 9 // This is the row I want to put values
  if(r.getRow() != cell1) { // Ignores this row (where I put the dates)
    var column = r.getColumn();  // Get column # from active cell
    var time = new Date(); // Get date and time of last mod
    time = Utilities.formatDate(time, "GMT-08:00", "MM/DD/yy, hh:mm:ss"); // Format date and time
    SpreadsheetApp.getActiveSheet().getRange(cell1,column).setValue(time); // put in time in cell
  };
 };
ответил user2023699 21 stEurope/Moscowp30Europe/Moscow09bEurope/MoscowSat, 21 Sep 2013 00:27:49 +0400 2013, 00:27:49

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132