簡體   English   中英

庫存-當單元格值小於2時發送電子郵件(Google電子表格)

[英]Stock Inventory - Send email when cell value < 2 (Google Spreadsheet)

我目前正在嘗試使用Google電子表格為我的工作場所中經常使用的一些產品創建庫存。 此外,我正在嘗試提出一個腳本,當某個產品的價值低於2時,該腳本會向我發送電子郵件,以便我知道某個產品需要重新庫存。 我不了解編碼的基礎知識,但到目前為止,這是我得到的:

function readCell() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Sheet1");  
var ProductA = sheet.getRange("B2").getValue();
var Product B = sheet.getRange("B3").getValue();
var min = 2
if (ProductA<min) MailApp.sendEmail('n********@googlegroups.com', 'LOW REAGENT STOCK',     'Attention! Your stock of ProductA is running low. Please proceed to restock.');
if (ProductB<min) MailApp.sendEmail('n********@googlegroups.com', 'LOW REAGENT STOCK',     'Attention! Your stock of ProductB is running low. Please proceed to restock.');
}

我將觸發器放在onEdit上以運行腳本,並打算使用更多產品來擴展該列表。 問題是,如果一個產品的價格已經低於2,而另一個產品的價格發生變化,則腳本將為這兩個產品發送電子郵件。 隨着更多產品的推出,這變得很麻煩,因為如果其他值保持在2以下,我會收到一堆電子郵件。有人可以幫我解決這個問題嗎? 到目前為止,我還沒有找到任何解決方案,我將不勝感激。

謝謝!

當“ onEdit”觸發器觸發時,它將接收事件對象作為參數,其中包含一些有關上下文的有用信息,其中發生了編輯操作。

例如,

    function onEdit(e) {

        // range that was edited
        var range = e.range; 

        //value prior to the edit action
        var oldValue = e.oldValue;

        //new value
        var value = e.value;

        //sheet the action came from
        var sheet = range.getSheet(); 

        //cell coordinates (if edited range is a single cell)
        //or the upper left boundary of the edited range

        var row = range.getRow(); 
        var col = range.getColumn();


      }

您可以檢查事件對象以獲取已編輯的單元格,然后查看它是否在B列中。

var productsColIndex = 1; //column A index;
var inventoryColIndex = 2; //column B index

var range = e.range;
var value = e.value;
var sheet = range.getSheet();


var editedRow = range.getRow();
var editedCol = range.getColumn();

var productName = sheet.getRange(editedRow, productsColIndex).getValue();



//checking if 
//1) column B was edited 
//2) the product exists in column A
//3) new value is less than 2

if ((editedCol == inventoryColIndex) && productName && value < 2) {

    //code for sending notification email. 

 }

最后,由於像onEdit()這樣的簡單觸發器無法調用需要授權的服務,因此最好使用其他名稱創建一個函數,然后手動設置可安裝觸發器。 在腳本編輯器中,轉到“編輯”->“當前項目的觸發器”->“添加新觸發器”,從下拉列表中選擇函數名稱,然后選擇以下選項:“來自電子表格”,“編輯時” 。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM