我有一個代碼,可以根據我名為“發送電子郵件 [團隊 A]”的 Google 表格選項卡中的值將電子郵件發送到特定的電子郵件地址(在這種情況下,可以說它的 [email protected])。當我單擊選單項“到團隊 A”時,它就會運行。該代碼可以正常發送電子郵件,但它也可以在空白行上運行,從而將空白電子郵件發送到 [email protected]。作業表會不時更新,這就是為什么我沒有限制范圍直到特定行。有沒有辦法讓代碼只在非空白行上運行?
這是我正在使用的代碼:
function onOpen() {
const ui = SpreadsheetApp.getUi();
ui.createMenu("Send Emails")
.addItem("To Team A", "toTeamA")
.addToUi();
// This constant is written in column C for rows for which an email
// has been sent successfully.
var EMAIL_SENT = "Email Sent";
function toTeamA() {
var sheet = SpreadsheetApp.getActive().getSheetByName("Send Emails [Team A]");
var startRow = 2; // First row of data to process would be '2' because the first row is header
var numRows = 1000; // Number of rows to process
var dataRange = sheet.getRange('A2:D') // Gets the data range
var data = dataRange.getValues();
for (var i = 0; i < data.length; i) {
var row = data[i];
var emailAddress = "[email protected]";
var subject = row [1]; // Second column
var message = row [0]; // First column
var emailSent = row [2]; // Third column
if (emailSent != EMAIL_SENT) { // Prevents sending duplicates
MailApp.sendEmail(emailAddress, subject, message);
sheet.getRange(startRow i, 3).setValue(EMAIL_SENT);
// Makes sure cell is updated right away with "Email Sent" in case the script is interrupted
SpreadsheetApp.flush();
}
}
}
任何幫助深表感謝!
uj5u.com熱心網友回復:
當然,假設您的行是空的,例如第 1-100 行包含內容,而從 101 開始它是空的。您可以使用 找到包含資料的最后一行sheet.getLastRow(),請參閱檔案。
因此,sheet.getRange("A2:D")您可以做sheet.getRange("A2:D" sheet.getLastRow())應該解決問題的方法,而不是這樣做。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/432775.html
