【问题标题】:Email address selector in Google Apps scriptGoogle Apps 脚本中的电子邮件地址选择器
【发布时间】:2015-01-20 13:03:11
【问题描述】:

我有一个脚本可以根据表单上的下拉选择器的结果来选择电子邮件地址,该表单按预期工作。

但我有另一个下拉菜单,如果选择“08-维护”,我希望它覆盖电子邮件选择器。这一点不起作用。非常感谢任何帮助。

//select THIS spreadsheet
var LogSheet = SpreadsheetApp.getActiveSpreadsheet(); 

//select correct worksheet  
var sheet = LogSheet.getSheetByName("LOG"); 

//declare the row to look at (the last row)
var lastRowNumber = sheet.getDataRange().getNumRows();

//declare and obtain the variable for the Source Code in column 3  
var SourceValue = sheet.getRange(lastRowNumber, 3).getValue(); 

//declare and obtain the variable for the Location Code in column 4 
var LocationValue = sheet.getRange(lastRowNumber,4).getValue();

//declare and obtain the variable for the Hazard being reported in column 6 
var HazardValue = sheet.getRange(lastRowNumber,6).getValue();

//declare the correct email addresses to use
  var email01 = LogSheet.getSheetByName("LocationCodes").getRange(3, 5).getValue();
  var email02 = LogSheet.getSheetByName("LocationCodes").getRange(4, 5).getValue();
  var email03 = LogSheet.getSheetByName("LocationCodes").getRange(5, 5).getValue();
  var email04 = LogSheet.getSheetByName("LocationCodes").getRange(6, 5).getValue();
  var email05 = LogSheet.getSheetByName("LocationCodes").getRange(7, 5).getValue();
  var email06 = LogSheet.getSheetByName("LocationCodes").getRange(8, 5).getValue();
  var email07 = LogSheet.getSheetByName("LocationCodes").getRange(9, 5).getValue();
  var email08 = LogSheet.getSheetByName("LocationCodes").getRange(10, 5).getValue();
  var email09 = LogSheet.getSheetByName("LocationCodes").getRange(11, 5).getValue();
  var email10 = LogSheet.getSheetByName("LocationCodes").getRange(12, 5).getValue();
  var email11 = LogSheet.getSheetByName("LocationCodes").getRange(13, 5).getValue();
  var email12 = LogSheet.getSheetByName("LocationCodes").getRange(14, 5).getValue();
  var email13 = LogSheet.getSheetByName("LocationCodes").getRange(15, 5).getValue();
  var email14 = LogSheet.getSheetByName("LocationCodes").getRange(16, 5).getValue();
  var email15 = LogSheet.getSheetByName("LocationCodes").getRange(17, 5).getValue();
  var email16 = LogSheet.getSheetByName("LocationCodes").getRange(18, 5).getValue();
  var email17 = LogSheet.getSheetByName("LocationCodes").getRange(19, 5).getValue();
  var email18 = LogSheet.getSheetByName("LocationCodes").getRange(20, 5).getValue();
  var email19 = LogSheet.getSheetByName("LocationCodes").getRange(21, 5).getValue();  
  var email20 = LogSheet.getSheetByName("LocationCodes").getRange(22, 5).getValue(); 

//declare the correct LocationCodes to check
  var depot01 = LogSheet.getSheetByName("LocationCodes").getRange(3, 4).getValue();
  var depot02 = LogSheet.getSheetByName("LocationCodes").getRange(4, 4).getValue();
  var depot03 = LogSheet.getSheetByName("LocationCodes").getRange(5, 4).getValue();
  var depot04 = LogSheet.getSheetByName("LocationCodes").getRange(6, 4).getValue();
  var depot05 = LogSheet.getSheetByName("LocationCodes").getRange(7, 4).getValue();
  var depot06 = LogSheet.getSheetByName("LocationCodes").getRange(8, 4).getValue();
  var depot07 = LogSheet.getSheetByName("LocationCodes").getRange(9, 4).getValue();
  var depot08 = LogSheet.getSheetByName("LocationCodes").getRange(10, 4).getValue();
  var depot09 = LogSheet.getSheetByName("LocationCodes").getRange(11, 4).getValue();
  var depot10 = LogSheet.getSheetByName("LocationCodes").getRange(12, 4).getValue();
  var depot11 = LogSheet.getSheetByName("LocationCodes").getRange(13, 4).getValue();
  var depot12 = LogSheet.getSheetByName("LocationCodes").getRange(14, 4).getValue();
  var depot13 = LogSheet.getSheetByName("LocationCodes").getRange(15, 4).getValue();
  var depot14 = LogSheet.getSheetByName("LocationCodes").getRange(16, 4).getValue();
  var depot15 = LogSheet.getSheetByName("LocationCodes").getRange(17, 4).getValue();
  var depot16 = LogSheet.getSheetByName("LocationCodes").getRange(18, 4).getValue();
  var depot17 = LogSheet.getSheetByName("LocationCodes").getRange(19, 4).getValue();
  var depot18 = LogSheet.getSheetByName("LocationCodes").getRange(20, 4).getValue();
  var depot19 = LogSheet.getSheetByName("LocationCodes").getRange(21, 4).getValue();
  var depot20 = LogSheet.getSheetByName("LocationCodes").getRange(22, 4).getValue();


//send the email to the 'recipient' 
//if SourceValue is recorded as 08 - Mantenance Request System, the recipient is engineering.support@websiteaddress
//otherwise check location code and send to corresponding H&S Co-ordinator's email address

if (SourceValue == "08 - Mantenance Request System") {
    var recipient = "engineering.support@websiteaddress";

//Start with first depot in list

    } else if (LocationValue == depot01) {
    var recipient = email01;

    } else if (LocationValue == depot02) {
    var recipient = email02;

    } else if (LocationValue == depot03) {
    var recipient = email03;

    } else if (LocationValue == depot04) {
    var recipient = email04;

    } else if (LocationValue == depot05) {
    var recipient = email05;

    } else if (LocationValue == depot06) {
    var recipient = email06;

    } else if (LocationValue == depot07) {
    var recipient = email07;

    } else if (LocationValue == depot08) {
    var recipient = email08;

    } else if (LocationValue == depot09) {
    var recipient = email09;

    } else if (LocationValue == depot10) {
    var recipient = email10;

    } else if (LocationValue == depot11) {
    var recipient = email11;

    } else if (LocationValue == depot12) {
    var recipient = email12;

    } else if (LocationValue == depot13) {
    var recipient = email13;

    } else if (LocationValue == depot14) {
    var recipient = email14;

    } else if (LocationValue == depot15) {
    var recipient = email15;

    } else if (LocationValue == depot16) {
    var recipient = email16;

    } else if (LocationValue == depot17) {
    var recipient = email17;

    } else if (LocationValue == depot18) {
    var recipient = email18;

    } else if (LocationValue == depot19) {
    var recipient = email19;

    } else if (LocationValue == depot20) {
    var recipient = email20;

} else {

//and send to Engineering Support if there is no code as a catch all.
    var recipient = "engineering.support@websiteaddress";  //CHANGE TO ENG SUPP
}

//with the 'LocationCode' & 'SourceCode' as the subject
var subject = SourceValue ;  

//then write the'body' of the email including the link to see the changes
var body = 'A new [' + SourceValue + '] log entry has been recorded at [' + LocationValue  + '],  listed as [' + HazardValue + '], please click the link > > http://goo.gl/shortcode < < to view details.';

{ 
//then send the email 
MailApp.sendEmail(recipient,subject,body); 
}

我更改了网址和goo.gl短代码,原因很明显!

【问题讨论】:

  • Mantenance 拼写错误。那是问题吗?我会使用三个等号进行比较。
  • 谢谢桑迪 - 这似乎已经解决了。你能扩展三等式的去向吗?你的意思是而不是双?为什么...?
  • 在下面查看我的答案。

标签: email google-apps-script automation


【解决方案1】:

您的比较值似乎拼写错误:

应该是维护而不是维护:

if (SourceValue == "08 - Mantenance Request System") {
    var recipient = "engineering.support@websiteaddress";

//Start with first depot in list

    } else if (LocationValue == depot01) {
    var recipient = email01;

我会使用三个等号进行比较:

if (SourceValue === "08 - Maintenance Request System") {

您可以搜索类似这样的帖子以了解不同之处:

Stack Overflow Link

【讨论】:

  • 再次感谢。这是拼写错误,已排序。你能解释一下为什么你会使用三个 = 而不是两个吗?两者似乎都有效。
  • 三等号是“严格”比较,值和类型都必须相同。三等号产生的结果更直观;他们给你你所期望的。有时双等号会给你一个意想不到的结果,因为人们不明白它到底在做什么。 Comparison Operators - Mozilla Documentation
猜你喜欢
  • 1970-01-01
  • 2011-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多