Wie Amit in seiner Antwort sagte , funktioniert der onEdit () - Trigger dafür, und Sie müssen Werte vom Edit-Ereignisobjekt abrufen . Eine vollständige Lösung für diesen Anwendungsfall wäre etwa:
function onEdit(e) {
// Prevent errors if no object is passed.
if (!e) return;
// Get the active sheet.
e.source.getActiveSheet()
// Set the cell you want to update with the date.
.getRange('M2')
// Update the date.
.setValue(new Date());
// Get the active sheet.
e.source.getActiveSheet()
// Set the cell you want to update with the user.
.getRange('M3')
// Update the user (only email is available, and only if security settings allow).
.setValue(e.user.getEmail() );
}
Dann müssen Sie nur noch die Funktion aus einer beliebigen zufälligen Zelle aufrufen =onEdit()
, und dann aktualisiert jede Zelle, die Sie bearbeiten, die Zellen, die Sie in Ihrem Skript festgelegt haben.
Warnung : Der onEdit () - Trigger vermasselt Ihren Rückgängig / Wiederherstellen-Verlauf. Jedes Mal, wenn es ausgelöst wird, wenn Sie eine Zelle bearbeiten, wird die Aktion des Auslösers zum Rückgängig-Verlauf hinzugefügt. Dies bedeutet zwei Dinge: 1. Um das letzte, was Sie getan haben, rückgängig zu machen, müssen Sie zweimal schnell hintereinander rückgängig machen (einmal für onEdit () ), einmal für Ihre Bearbeitung). 2. Da onEdit () auch jedes Mal ausgelöst wird, wenn Sie etwas rückgängig machen, wird Ihr Wiederherstellungsverlauf effektiv gelöscht, indem es sofort überschrieben wird.
only email is available, and only if security settings allow
<Gibt es Hinweise, wie diese Sicherheitseinstellung für andere Benutzer in einem freigegebenen Google Sheet zugelassen werden kann? Keine Verwendung von Google Apps für Unternehmen. Nur der freie.Sie können einen onEdit-Trigger einrichten , der das Bearbeitungsdatum und andere Details in einem anderen Blatt in derselben Tabelle protokolliert.
quelle