(GAS)基于单元格中日期输入的电子邮件电子表格范围



下面是一个脚本,它应该通过电子邮件向我发送"文件更改报告"中的一系列非空行。在同一页的H2单元格中写上日期。但是,在测试脚本时,无论H2中是什么,仍然会发送电子邮件。谁能告诉我剧本出了什么问题?谢谢你。

function email() {

var ss = SpreadsheetApp.getActiveSpreadsheet();
var bulk = ss.getSheetByName("File Change Report");

var lastrow = bulk.getLastRow();

var email = bulk.getRange("E1").getValue();
var emailFromName ="David Baker";
var emailSubject = "UPDATES TO YOUR FILES";

const WebLink = 'https://docs.google.com/forms/d/e/123...'
var emailFooter = "To stop notifications<a href=" + WebLink + ">press here.</a>";

var data1 = bulk.getRange(2, 5, lastrow).getValues(); // row no column E
var data2 = bulk.getRange(2, 6, lastrow).getValues(); // date updated column F
var data3 = bulk.getRange(2, 7, lastrow).getValues(); // file name column G
var data4 = bulk.getRange(2, 4, lastrow).getValues(); // file url column D

var SendDateRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("File Change Report").getRange("H2"); 
var SendDate = SendDateRange.getValue();
var curDateRange = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("File Change Report").getRange("H4"); 
var curDate = curDateRange.getValue();

for(var i in data1){
if (SendDate.toString() == curDate.toString()){ table += "<tr><td width='7' style='padding-right:5px' align='right'>" + data1[i] + "</td><td style='padding:0px'>" + data2[i] + "</td><td style='padding: 0px 0px 0px 20px'><a href='" + data4[i] + "'>" + data3[i] + "</a></td></tr>"; //top right bottom left
}

var message = ""
var table ="";

message ="Files below have been updated:<br/><br/> <table style='margin-left:10px'><tr><th></th><th align='left'>Date</th><th align='left' style='padding: 0px 0px 0px 20px'>File Name</th></tr>" + table + "</table></li>"+ "<br><small> "+emailFooter+" </a></small>";

MailApp.sendEmail(email,emailSubject, message, {name: emailFromName, htmlBody: message});

var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Fetch all files");
array = [];
ss.getRange("A2:G") // Choose the range here.clear();
.clearContent();
}

从问题

然而,在测试脚本时,无论H2中是什么,邮件仍然发送。

改变
if (SendDate.toString() == curDate.toString()){ table += "<tr><td width='7' style='padding-right:5px' align='right'>" + data1[i] + "</td><td style='padding:0px'>" + data2[i] + "</td><td style='padding: 0px 0px 0px 20px'><a href='" + data4[i] + "'>" + data3[i] + "</a></td></tr>"; //top right bottom left
} // <--- this bracket should be moved 

var message = ""
var table ="";

message ="Files below have been updated:<br/><br/> <table style='margin-left:10px'><tr><th></th><th align='left'>Date</th><th align='left' style='padding: 0px 0px 0px 20px'>File Name</th></tr>" + table + "</table></li>"+ "<br><small> "+emailFooter+" </a></small>";

MailApp.sendEmail(email,emailSubject, message, {name: emailFromName, htmlBody: message});

var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Fetch all files");
array = [];
ss.getRange("A2:G") // Choose the range here.clear();
.clearContent();

if (SendDate.toString() == curDate.toString()){ table += "<tr><td width='7' style='padding-right:5px' align='right'>" + data1[i] + "</td><td style='padding:0px'>" + data2[i] + "</td><td style='padding: 0px 0px 0px 20px'><a href='" + data4[i] + "'>" + data3[i] + "</a></td></tr>"; //top right bottom left


var message = ""
var table ="";

message ="Files below have been updated:<br/><br/> <table style='margin-left:10px'><tr><th></th><th align='left'>Date</th><th align='left' style='padding: 0px 0px 0px 20px'>File Name</th></tr>" + table + "</table></li>"+ "<br><small> "+emailFooter+" </a></small>";

MailApp.sendEmail(email,emailSubject, message, {name: emailFromName, htmlBody: message});

var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Fetch all files");
array = [];
ss.getRange("A2:G") // Choose the range here.clear();
.clearContent();
} // <--- this is new position of the if bracket 

最新更新