我在使用Google Apps设置脚本时遇到了一些问题。每当特定号码输入单元格时,我都会尝试发送电子邮件。
我希望它以下列方式工作:
如果在名为" Ordered"的工作表中将数字1输入到单元格D2中,我希望工作表上的单元格A1"代码"发送给当前活动用户。如果输入数字2,我希望发送单元格A1:A2;如果输入3,则应发送单元格A1:A3等,直到5个意义单元格A1:A5应该被发送。
我已经创建了一个时间驱动的脚本并编写了以下内容,但是尽管脚本显然运行没有错误,但没有生成电子邮件:
function sendemail () {
var emailaddress = Session.getActiveUser().getEmail()
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = SpreadsheetApp.getActiveSheet();
var r = SpreadsheetApp.getActiveRange();
var vName = s.getName();
var vColumn = r.getColumn();
var vValue = r.getValue();
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("Ordered");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
var emailAddress = Session.getUser().getEmail();
var dataRange = targetSheet.getRange("A1:A10");
var emailData = dataRange.getValues();
var subject = "Sending emails from a Spreadsheet";
if(vName == "Ordered" && vColumn == 4 && row == 2 (typeof vValue == "number")) {
s.getRange(row, 1, vValue, numColumns);
MailApp.sendEmail(emailAddress, subject, emailData);
s.deleteRows(row, vValue);
}
}
当我检查执行记录时,列出的最后一件事是:
Range.getValues()
Execution succeeded
我是所有这一切的完全初学者,所以如果有人能帮到我,我将永远感激不尽!
答案 0 :(得分:0)
你写的剧本几乎是完美的...... 不幸的是,这个单词(差不多)有所不同......
if
条件错误。
尝试这样:
function sendemail () {
var emailaddress = Session.getActiveUser().getEmail()
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = SpreadsheetApp.getActiveSheet();
var r = SpreadsheetApp.getActiveRange();
var vName = s.getName();
var vColumn = r.getColumn();
var vValue = r.getValue();
var row = r.getRow();
var numColumns = s.getLastColumn();
var targetSheet = ss.getSheetByName("Ordered");
var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
var emailAddress = Session.getUser().getEmail();
var dataRange = targetSheet.getRange("A1:A10");
var emailData = dataRange.getValues();
var subject = "Sending emails from a Spreadsheet";
Logger.log(vName+' '+vColumn+' '+typeof(vValue));
if(vName == "Ordered" && vColumn == 4 && row == 2 && typeof(vValue) == "number") {
s.getRange(row, 1, vValue, numColumns);
MailApp.sendEmail(emailAddress, subject, emailData);
s.deleteRows(row, vValue);
}
}
那就是说,它没有回应你在关于范围和值的问题中描述的目标......我想这是你试图测试工作流程的尝试。