Wie zeige ich das Datum und den Nutzer der letzten Bearbeitung in Google Sheets an?

7

Ich habe ein Google-Blatt, das von einigen Leuten regelmäßig aktualisiert wird.

Ich möchte das Dokument anzeigen und auf einen Blick eine Zelle mit einem Datum (zuletzt geändert) und eine andere Zelle (Benutzer, der die Änderung vorgenommen hat) anzeigen können.

Ist das überhaupt möglich und wie würde ich das machen?

Etwas wie das:

Geben Sie hier die Bildbeschreibung ein

user86903
quelle

Antworten:

2

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.

Kevinmicke
quelle
1
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.
Slayernoah
@slayernoah - Es scheint, dass getEmail die einzige Benutzerklasse ist. Siehe: developer.google.com/apps-script/reference/base/user
Zlatty
unbekannte Funktion OnEdit
Serge
1

Sie können einen onEdit-Trigger einrichten , der das Bearbeitungsdatum und andere Details in einem anderen Blatt in derselben Tabelle protokolliert.

function onEdit(e){
  var range = e.range;
  range.setNote('Last modified: ' + new Date());
}
Amit Agarwal
quelle