Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
If statement 谷歌应用程序脚本-基于IF函数发送电子邮件_If Statement_Google Apps Script - Fatal编程技术网

If statement 谷歌应用程序脚本-基于IF函数发送电子邮件

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

我在谷歌应用程序中设置脚本时遇到一些问题。我试图在手机中输入特定号码时发送一封电子邮件

我希望它能以以下方式工作:

如果将数字1输入到名为“Ordered”的工作表上的单元格D2中,我希望将工作表“Codes”上的单元格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

我对这一切都是一个完全的初学者,所以如果有人能帮助我,我将永远感激

你写的剧本近乎完美。。。 不幸的是,这一个词(几乎)造成了不同

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,我现在正在努力处理代码的另一部分,并且正在努力在评论部分解释它,因此我开始了一个新问题-希望您能再次提供帮助!?我猜你发送此链接是为了建议我正确回答?我稍后再做;)顺便说一句,谢谢接受!