簡體   English   中英

當谷歌工作表單元格只有兩列空白時如何發送電子郵件?

[英]How to send an email when google sheet cell is blank for two columns only?

我試圖讓腳本自動使用觸發器在“U”和“V”列中的單元格為空白時向我發送電子郵件。

function sendEmails() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var startRow = 2; // Start at second row because the first row contains the data labels
  var lastRow = sheet.getLastRow()
  var lastCol = sheet.getLastColumn()

  // Fetch the range of cells, in this case A2:T
  // Column B, row[2] = Email Address, Column C, row[1] = Name
  var dataRange = sheet.getRange(startRow, 1, lastRow, lastCol)

  // Fetch values for each row in the Range.
  var data = dataRange.getValues();

  for (var i = 0; i < data.length-1; ++i) {
    var row = data[i];
   var emailAddress = 'email@address.com'; // 
    var message = "Hi " + row[2] + ",\n Could you please fill out the form:" + "\n 'insert website here'" + "\n Thank you"; // Assemble the body text
        var cell = row[19]; // Last column
    if (cell == " ") { 
   var subject = "Sending emails from a Spreadsheet";
   MailApp.sendEmail(emailAddress, subject, message);
  }
}
}

我讓代碼工作一次,但由於某種原因它突然停止工作。

  • 您希望在提交 Google 表單時通過運行腳本來發送電子郵件。
    • 在這種情況下,您要檢查已編輯的行。
    • 盡管在您的腳本中, " "是一個空格用作空格,但我認為您認為的空格可能是""
  • 您希望使用 OnSubmit 事件觸發器自動運行腳本。

從你的回復,我可以理解如上。 如果我的理解是正確的,這個答案怎么樣? 請將此視為幾種可能的答案之一。

改裝要點:

  • 在您的腳本中,當“T”列的單元格為空白時,將運行 if 語句中的腳本。
  • 檢查未編輯的行。 因此,當幾行的“U”和“V”列的單元格為空白時,每行都會發送電子郵件。
流動:

這個修改后的腳本的流程如下。

  1. 當從 Google 表單提交值時,已安裝的 OnSubmit 事件觸發器將被觸發。
    • 這樣, sample的功能就運行起來了。
  2. 當值所在行的“U”列和“V”列的值都為空白時,則運行if語句中的腳本。
    • 由此, MailApp.sendEmail()運行。

修改后的腳本:

使用前請先將OnSubmit事件觸發器安裝到sample函數中作為可安裝觸發器。 並將電子郵件地址設置為var emailAddress = 'email@address.com'; .

 function sample(e) { var blank = ""; var range = e.range; var sheet = range.getSheet(); var editRow = range.getRow(); var row = sheet.getRange(editRow, 1, 1, 22).getValues()[0]; if (row.splice(-2).every(function(e) {return e == blank})) { var emailAddress = 'email@address.com'; var message = "Hi " + row[2] + ",\\n Could you please fill out the form:" + "\\n 'insert website here'" + "\\n Thank you"; var subject = "Sending emails from a Spreadsheet"; MailApp.sendEmail(emailAddress, subject, message); } }

筆記:

  • 如果你想使用一個像" "這樣的空格作為空格,請修改var blank = ""; var blank = " "; .

參考:

添加:

  • 您想使用電子表格中的特定工作表作為目標工作表。
    • 特定工作表的工作表名稱是PIC

我可以理解你的附加問題。 為此,請進行如下修改。

修改后的腳本:

 function sample(e) { var blank = ""; var range = e.range; // var sheet = range.getSheet(); // removed var sheetName = "PIC"; // Added var sheet = e.source.getSheetByName(sheetName); // Added var editRow = range.getRow(); var row = sheet.getRange(editRow, 1, 1, 22).getValues()[0]; if (row.splice(-2).every(function(e) {return e == blank})) { var emailAddress = 'email@address.com'; var message = "Hi " + row[2] + ",\\n Could you please fill out the form:" + "\\n 'insert website here'" + "\\n Thank you"; var subject = "Sending emails from a Spreadsheet"; MailApp.sendEmail(emailAddress, subject, message); } }

暫無
暫無

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

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