グーグルスクリプトの助けが必要です。複数行のスプレッドシートがあります。
次のことを行うスクリプトが必要です。
列Gのセルが変更されている場合は、この行の情報(セルDの情報とセルGの新しい値)を含む電子メール通知をカスタムアドレスに送信します。
UPD
役立つ情報を見つけました:
function emailNotification() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var cell = ss.getActiveCell().getA1Notation();
var cellvalue = ss.getActiveCell().getValue().toString();
var recipient = "me@gmail.com";
var subject = 'Update to '+sheet.getName();
var body = sheet.getName() + ' has been updated. Visit ' + ss.getUrl() + ' to view the changes on cell: «' + cell + '» New cell value: «' + cellvalue + '»';
MailApp.sendEmail(recipient, subject, body);
};
このスクリプトは、テーブル全体の変更を追跡します。そして、列Gでのみ変更を追跡し、列Dから値を取得したいと思います。
質問:
値が列Gのセルを変更したときに列Dのセルの値を取得する方法
最後にスクリプト—私の質問に答えます
function sendNotification() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var cell = ss.getActiveCell().getA1Notation();
var row = sheet.getActiveRange().getRow();
var cellvalue = ss.getActiveCell().getValue().toString();
var recipients = "me@gmail.com";
var message = '';
if(cell.indexOf('G')!=-1){
message = sheet.getRange('D'+ sheet.getActiveCell().getRowIndex()).getValue()
}
var subject = 'Update to '+sheet.getName();
var body = sheet.getName() + ' has been updated. Visit ' + ss.getUrl() + ' to view the changes on row: «' + row + '». New comment: «' + cellvalue + '». For message: «' + message + '»';
MailApp.sendEmail(recipients, subject, body);
};
onEditにトリガーを設定すると、スクリプトが正常に機能します