If statement 谷歌应用程序脚本-基于IF函数发送电子邮件
我在谷歌应用程序中设置脚本时遇到一些问题。我试图在手机中输入特定号码时发送一封电子邮件 我希望它能以以下方式工作: 如果将数字1输入到名为“Ordered”的工作表上的单元格D2中,我希望将工作表“Codes”上的单元格A1发送给当前活动用户。如果输入了数字2,我希望发送单元格A1:A2;如果输入3,则应发送单元格A1:A3等。一直到5,表示应发送单元格A1:A5 我创建了一个时间驱动脚本,并编写了以下内容,但尽管脚本运行时没有出现错误,但没有生成电子邮件:If statement 谷歌应用程序脚本-基于IF函数发送电子邮件,if-statement,google-apps-script,If Statement,Google Apps Script,我在谷歌应用程序中设置脚本时遇到一些问题。我试图在手机中输入特定号码时发送一封电子邮件 我希望它能以以下方式工作: 如果将数字1输入到名为“Ordered”的工作表上的单元格D2中,我希望将工作表“Codes”上的单元格A1发送给当前活动用户。如果输入了数字2,我希望发送单元格A1:A2;如果输入3,则应发送单元格A1:A3等。一直到5,表示应发送单元格A1:A5 我创建了一个时间驱动脚本,并编写了以下内容,但尽管脚本运行时没有出现错误,但没有生成电子邮件: function sendemail
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
我对这一切都是一个完全的初学者,所以如果有人能帮助我,我将永远感激 你写的剧本近乎完美。。。 不幸的是,这一个词(几乎)造成了不同
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);
}
}
也就是说,它不响应您在关于范围和值的问题中描述的目标。。。我猜这是您尝试测试工作流。谢谢Serge,我现在正在努力处理代码的另一部分,并且正在努力在评论部分解释它,因此我开始了一个新问题-希望您能再次提供帮助!?我猜你发送此链接是为了建议我正确回答?我稍后再做;)顺便说一句,谢谢接受!