我有简单的脚本来根据电子表格中的数据发送电子邮件。
第1列是主题。第2,3,4,5列是正文。
问题是 - 我在电子表格中的北斗星 - 电子邮件末尾发送的逗号脚本越多。如果这是第一行 - 没有额外的逗号。第2行 - 2个逗号,第3行 - 4个逗号等等。
如何摆脱这些不需要的逗号? 我很抱歉这个新手问题。
代码是
function sendEmails() {
var time = new Date;
Logger.log(time);
var sheet = SpreadsheetApp.getActiveSheet();
var hojaRegistro = SpreadsheetApp.getActive();
var activeRow = hojaRegistro.getActiveCell().getRow();
var subject = sheet.getRange(activeRow, 1, activeRow, 1).getValues();
var message = sheet.getRange(activeRow, 2, activeRow, 5).getValues();
MailApp.sendEmail('my@mymail.com', subject, message);
sheet.getRange(activeRow, 6).setValue('E-mail sent on ' +time);
SpreadsheetApp.flush();
}
function onOpen() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var entries = [{
name : "Send Email",
functionName : "sendEmails"
}];
sheet.addMenu("Script Center Menu", entries);
};
答案 0 :(得分:1)
如果要将活动行中的第一列作为主题,将列2,3,4,5作为正文,则必须从所有列的同一行检索范围。为此,您必须将第3个参数设为1而不是activeRow(var message = sheet.getRange(activeRow, 2, 1 , 5).getValues();)
。
对代码进行了一些更改。
试试这个:
function sendEmails() {
var time = new Date;
Logger.log(time);
var sheet = SpreadsheetApp.getActiveSheet();
var hojaRegistro = SpreadsheetApp.getActive();
var activeRow = hojaRegistro.getActiveCell().getRow();
var subject = sheet.getRange(activeRow, 1, activeRow, 1).getValues();
var message = sheet.getRange(activeRow, 2, 1 , 5).getValues();
MailApp.sendEmail('my@mymail.com', subject, message);
sheet.getRange(activeRow, 6).setValue('E-mail sent on ' +time);
SpreadsheetApp.flush();
}
function onOpen() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var entries = [{
name : "Send Email",
functionName : "sendEmails"
}];
sheet.addMenu("Script Center Menu", entries);
}
希望有所帮助!