我正在Google工作表上设置一个电子邮件警报,如果其中一栏的值低于2,我会在我的邮件中收到电子邮件警报。 我有多个域,每天检查域的到期日期非常繁琐。我创建了一个表格,其中放置了域名,注册商,托管的,今天的日期,到期日期,到期的剩余天数。现在,我想在“剩余剩余天数”列上创建一个警报,以便当剩余天数少于2天时,它将警报电子邮件发送到我的电子邮件地址列表中。
我已经做过的工作是获取一个单元格值的电子邮件,但我想做的是获取整列或列值数量的电子邮件。
function CheckSales() {
// Fetch the values
var domainexpireRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("domain list").getRange("F2");
var domainexpire = domainexpireRange.getValues();
// Check domain expiring
if ( domainexpire < 2){
var emailRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Company emails").getRange("B2:B4");
var emailAddress = emailRange.getValues();
// Send Alert Email.
var message = '2019 smtp Domain Expiring in two days. Please check the sheet domain sheet '; // Second column
var subject = '2019 smtp Domain Expiring';
MailApp.sendEmail(emailAddress, subject, message);
}
}
我有一个包含多个行和列的工作表,我要做的是检查F列,如果F列中的任何值小于2,然后向我的电子邮件地址发送警报电子邮件。 如果我将代码复制粘贴多次并更改“ getRange(“ F2”);“,则我的代码运行良好。到F2,F3,.... F100 但这不是编写代码的好方法。谁能告诉我是否可以编辑一些代码并得到结果。
我尝试使用“ getRange(” F2:F“);” &getRange(“ F2:F54”);但无法解决。
感谢您的帮助。
答案 0 :(得分:1)
尝试使用for语句在整个工作表中循环,以下代码应该起作用:
function checkSales() {
// Fetch the values
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getSheetByName("domain list");
var dataRange = sheet.getDataRange();
var data = dataRange.getValues();
// loop through each row starting at row 2
for (var i = 1; i < data.length; i++) {
var domainExpire = data[i][5];
// Check domain expiring
if (domainExpire < 2) {
var emailRange = spreadsheet.getSheetByName("Company emails").getRange("B2:B4");
var emailAddress = emailRange.getValues();
// Send Alert Email.
var message = '2019 smtp Domain Expiring in two days. Please check the sheet domain sheet '; // Second column
var subject = '2019 smtp Domain Expiring';
MailApp.sendEmail(emailAddress, subject, message);
}
}
}
答案 1 :(得分:0)
尝试一下:
function CheckSales() {
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('domain list');
var domainexpireRange=sh.getRange(1,6,sh.getLastRow()-1,1);
var domainexpire=domainexpireRange.getValues();
for(var i=0;i<domainexpire.length;i++) {
// Check domain expiring
if (domainexpire[i][5]<2){
var emailRange=ss.getSheetByName("Company emails").getRange("B2:B4");
var emailAddress=emailRange.getValues().map(function(r){return r[0];}).join(',');
// Send Alert Email.
var dateString=Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "yyyy");
var message=Utilities.formatString('%s smtp Domain Expiring in two days. Please check the sheet domain sheet.',dateString);
var subject=Utilities.formatString('%s smtp Domain Expiring',dateString);
MailApp.sendEmail(emailAddress, subject, message);
}
}
}