Google Apps脚本 - 根据IF功能发送电子邮件

时间:2014-06-15 16:56:53

标签: if-statement google-apps-script

我在使用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

我是所有这一切的完全初学者,所以如果有人能帮到我,我将永远感激不尽!

1 个答案:

答案 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);
  }
}

那就是说,它没有回应你在关于范围和值的问题中描述的目标......我想这是你试图测试工作流程的尝试。