回答:
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履歴を効果的に取り除きます。
編集日などの詳細を同じスプレッドシート内の別のシートに記録するonEditトリガーを設定できます。
function onEdit(e){
var range = e.range;
range.setNote('Last modified: ' + new Date());
}
only email is available, and only if security settings allow
<共有Googleシートで他のユーザーにこのセキュリティ設定を許可する方法に関する指針はありますか?ビジネスにGoogleアプリを使用していない。無料のものだけです。