0
基本的に私はトナー在庫管理シートを作成しています。在庫が1になると送信するメールがあります。これはインストール可能なonEdit
トリガーで行います(私は単純なonEdit
機能を使用してログシート)。私の電子メールは正しく送信されますが、在庫が1になっていれば、別の在庫を編集するたびに電子メールが送られます。関連する在庫番号を含むセルが変更された場合にのみ電子メール機能を実行する方法はありますか?Google Script - 特定のセルが編集された場合にメールを自動的に送信する?
ここに私のコードはこの場合
function onEdit(event) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = event.source.getActiveSheet();
var r = event.source.getActiveRange();
if(s.getName() == "Toners" && r.getColumn() == 5 && r.getValue() > "") {
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("Log");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
s.getRange(row, 1, 1, numColumns).moveTo(target);
s.deleteRow(row);
}
}
//I included the above code just in case someone finds an easier way to put it in there and then call the EmailPrinterGroup1 functon..
function EmailPrinterGroup1() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var PrinterGroupStock = ss.getSheetByName("Notification").getRange("B1").getValue();
var EmailList = ["[email protected]"];
if(PrinterGroupStock <= 1){
var email = Session.getActiveUser().getEmail();
GmailApp.sendEmail(EmailList, 'Toner Stock Alert - Communal Areas',
'There is only 1 toner left in stock for the communal areas, please re-stock ASAP. Click the link below to go to the Toner Stock Management sheet. \n\n'+ss.getUrl(),
{from:"[email protected]"});
PropertiesService.getScriptProperties().setProperty("last", PrinterGroupStock);
}
}
だ、私がチェックしたいセルがCOUNTIF
式(計算の結果が1である場合に電子メールが送信されます)を使用した、B1
あり、そしてそれは上です"通知"シート(最も編集されるメインシートページは "トナー"と呼ばれます。)ありがとう!
@Celias:この回答は役に立ちましたか?必要な説明がありますか? –
返事をいただきありがとうございます。私はあなたの例でコードを使用し、それを私のものに適用しようとしましたが、うまくいきませんでした。電子メールはすべての編集を送信します...私のスプレッドシートのコピーへのリンクその周りに遊ぶ):[リンク](https://docs.google.com/spreadsheets/d/10F0rtPbh_RbVMi2rKUhtgK5kjEYKN_6Onn6SgqIQVdY/edit?usp=sharing) – Celias
@Celias:それは私のために働いています。テストのために、メール送信部を削除し、セル「B1」にメモを設定しました。共有したシートで試してみることができます。 –