Этот код обновит C: C с адресом электронной почты пользователя, а D: D - с текущим временем той же строки, если A: B редактируется на вкладке «Ввод данных».Вам нужно настроить триггер onChange (), чтобы он заработал.
function userUpdate() {
/*
Changed the updated by/on to make it faster
Put in handling to make sure that if they delete a cell, that it only clears out the submitted by/on if ALL the values in A:B are blank
*/
// Main sheet details
var s = SpreadsheetApp.getActiveSheet();
var spreadsheetTimeZone = SpreadsheetApp.getActive().getSpreadsheetTimeZone();
var lastUpdatedString = Utilities.formatDate(new Date(), spreadsheetTimeZone, "MM/dd/yyyy' 'HH:mm:ss");
var sessionEmail = Session.getActiveUser().getEmail();
// Check Sheet
if (s.getName() == "Data Entry") { //checks that we're on the correct sheet
var r = s.getActiveCell();
var row = r.getRowIndex();
var column = r.getColumn();
var activeRange = s.getRange("A" + row + ":B" + row);
//var activeRangeValues =
var activeRangeValuesLength = activeRange.getValues().toString().length;
if (row > 1) {
// Declare variables
var cellValue = r.getValue().toString();
// If the cellValue IS blank
if (activeRangeValuesLength < 5) {
sessionEmail = "";
lastUpdatedString = "";
}
// Update Submitted By / Submitted On
if (column < 5) {
var lastUpdatedBy = s.getRange("C" + row)
lastUpdatedBy.setValue(sessionEmail); // update column C
var lastUpdated = s.getRange("D" + row)
lastUpdated.setValue(lastUpdatedString); // update column D
}
}
}