我是脚本生活中的新手。我想发送一封基于多个单元格值的电子邮件。电子邮件正在工作,但有时我只有1个PO要发送,所以我当前的代码将发送PO1+9空行,我的电子邮件现在超长。
我认为我需要创建一个IF语句,但不确定从哪里开始。
function mailtest() {
var TO = SpreadsheetApp.getActiveSheet().getRange('N3').getValue();
var CC = SpreadsheetApp.getActiveSheet().getRange('N5').getValue();
var SUBJECT = SpreadsheetApp.getActiveSheet().getRange('L9').getValue();
var TEXT = SpreadsheetApp.getActiveSheet().getRange('L11').getValue();
var TEXT2 = SpreadsheetApp.getActiveSheet().getRange('L13').getValue();
var PO1 = SpreadsheetApp.getActiveSheet().getRange('L15').getValue();
var PO2 = SpreadsheetApp.getActiveSheet().getRange('L16').getValue();
var PO3 = SpreadsheetApp.getActiveSheet().getRange('L17').getValue();
var PO4 = SpreadsheetApp.getActiveSheet().getRange('L18').getValue();
var PO5 = SpreadsheetApp.getActiveSheet().getRange('L19').getValue();
var PO6 = SpreadsheetApp.getActiveSheet().getRange('L20').getValues();
var PO7 = SpreadsheetApp.getActiveSheet().getRange('L21').getValues();
var PO8 = SpreadsheetApp.getActiveSheet().getRange('L22').getValues();
var PO9 = SpreadsheetApp.getActiveSheet().getRange('L23').getValues();
var P10 = SpreadsheetApp.getActiveSheet().getRange('L24').getValues();
var signature = Gmail.Users.Settings.SendAs.list("me").sendAs.filter(function(account){if(account.isDefault){return true}})[0].signature;
MailApp.sendEmail({
to: TO,
subject: SUBJECT,
cc: CC,
htmlBody:
TEXT+"<br><br>"+
TEXT2+"<br><br>"+
//here is the problem ? I dont want PO3&4&5&6 if I only have 2 PO.
PO1+"<br>"+
PO2+"<br>"+
PO3+"<br>"+
PO4+"<br>"+
PO5+"<br>"+
PO6+"<br>"+
PO7+"<br>"+
PO8+"<br>"+
PO9+"<br>"+
P10+"<br><br>"+
signature
});
}
只有当变量有值时,才希望在电子邮件中包含变量。以下代码与您的代码有几个不同之处。
- 作为一个整体检索PO值:
sheet.getRange(15,12,10,1).getValues();
这使得能够在没有复杂变量处理的情况下评估内容 - 代码循环通过以下值:
for (var i=0; i<PO.length;i++){
,以及 - 评估PO是否具有值
if ( if (POValue){){
- 如果评估结果为是(PO有一个值(,则将其添加到电子邮件文本中(
POText = POText+POValue+"<br>"
(;否则,该PO不会包含在电子邮件文本中
function so58564238() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheetname = "58564238";
var sheet = ss.getSheetByName(sheetname);
var POText = "";
var PO = sheet.getRange(15,12,10,1).getValues();
for (var i=0; i<PO.length;i++){
var POValue = PO[i][0];
if (POValue){
POText = POText+POValue+"<br>"
}
}
Logger.log(POText)
}
合并邮件测试
function mailtest() {
var TO = SpreadsheetApp.getActiveSheet().getRange('N3').getValue();
var CC = SpreadsheetApp.getActiveSheet().getRange('N5').getValue();
var SUBJECT = SpreadsheetApp.getActiveSheet().getRange('L9').getValue();
var TEXT = SpreadsheetApp.getActiveSheet().getRange('L11').getValue();
var TEXT2 = SpreadsheetApp.getActiveSheet().getRange('L13').getValue();
var POText = "";
var PO = sheet.getRange(15,12,10,1).getValues();
for (var i=0; i<PO.length;i++){
var POValue = PO[i][0]
if (POValue){
POText = POText+POValue+"<br>"
}
}
var signature = Gmail.Users.Settings.SendAs.list("me").sendAs.filter(function(account){if(account.isDefault){return true}})[0].signature;
MailApp.sendEmail({
to: TO,
subject: SUBJECT,
cc: CC,
htmlBody:
TEXT+"<br><br>"+
TEXT2+"<br><br>"+
POText+"<br>"+
signature
});
}