「最後に編集された」日付とユーザーをGoogleスプレッドシートに表示する方法


7

数人が定期的に更新しているGoogleシートを持っています。

ドキュメントを一目で確認できるようにしたいと思います。日付(最後に変更された)と別のセル(変更を行ったユーザー)を示すセルがあります。

これはまったく可能ですか?どうすればいいですか?

このようなもの:

ここに画像の説明を入力してください

回答:


2

Amitが彼の回答で述べたように、onEdit()トリガーはこのために機能し、Editイベントオブジェクトから値を取得する必要があります。このユースケースの完全なソリューションは次のようになります。

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() );
}

次に、次のようにランダムなセルから関数を呼び出すだけ=onEdit()です。編集すると、スクリプトで設定したセルが更新されます。

警告:onEdit()トリガーは、元に戻す/やり直し履歴を台無しにします。セルを編集するときにトリガーされるたびに、トリガーからのアクションが元に戻す履歴に追加されます。これは、次の2つのことを意味します。1.最後に行った操作を元に戻すには、すばやく2回元に戻す必要があります(onEdit( )、編集のために1回)。2. onEdit()は、何かを元に戻すたびにも発生するので、すぐに上書きすることにより、REDO履歴を効果的に取り除きます。


1
only email is available, and only if security settings allow<共有Googleシートで他のユーザーにこのセキュリティ設定を許可する方法に関する指針はありますか?ビジネスにGoogleアプリを使用していない。無料のものだけです。
slayernoah

@slayernoah-getEmailが唯一のユーザークラスのようです。参照:developer.google.com/apps-script/reference/base/user
Zlatty

不明な関数OnEdit
Serge

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.