【问题标题】:Google Spreadsheet - How to write the correct If statement and Browser.msgBox return functionGoogle 电子表格 - 如何编写正确的 If 语句和 Browser.msgBox 返回函数
【发布时间】:2014-03-19 09:06:34
【问题描述】:

我想弄清楚的是,如何编写 if 语句,以便它将根据它将在电子表格中检查的两个值发送一封单独​​的电子邮件。

这是 N 列中的两个值:

“进行中”

“已完成”

这里是代码部分:

var sheetNameToWatch = "Active Discs"; // Active spreadsheet that contains the data
var columnNumberToWatch = 14; // Column N
var valueToWatch1 = "In Progress"; // First value to watch for in column N
var valueToWatch2 = "Completed"; // Second value to watch for in column N
/*var valueToWatch3 = "Rejected"; // Third value to watch for in columns for labeled PM         Review and Date Discs Shipped*/
var timestamp = new Date(); // Timestamp
var activeSessionuser = Session.getEffectiveUser(); //Get the current user in the     spreadsheet
var replyTo = 'test@test.com';

function sendEmailNotifications(e) {
//Logger.log(JSON.stringify(e));
    try{
var ss = e.source;
var sheet = ss.getActiveSheet();
var range = e.range;

//Checks the variables sheetNameToWatch + columnNumberToWatch + valueToWatch1 ("in progress")
//Sends Email to Venue Colombo Team
  if (sheet.getName() == sheetNameToWatch && range.columnStart == columnNumberToWatch && (e.value == valueToWatch1)){

    var confirm = Browser.msgBox('Email will be sent to the Venue Colombo Team. Do you want to sent this email?', Browser.Buttons.YES_NO); 
if(confirm.toLowerCase()=='yes'){sendColomboMessage(e.range.rowStart)};
    SpreadsheetApp.getActiveSpreadsheet().toast('Email Sent to Venue Colombo Team')
}

这部分我一直在尝试编写“else”或“else if”语句,以查看值“已完成并发送不同的电子邮件”。

 else (sheet.getName() == sheetNameToWatch && range.columnStart == columnNumberToWatch && (e.value == valueToWatch2)){

    var confirm = Browser.msgBox('Email will be sent to the Venue Colombo Team. Do you want to sent this email?', Browser.Buttons.YES_NO); 
if(confirm.toLowerCase()=='yes'){sendVCSMessage(e.range.rowStart)};
    SpreadsheetApp.getActiveSpreadsheet().toast('Email Sent to VCS Team')*/

}catch(err){Logger.log('catch err = '+err)}
}

最后,当我添加“return;”时对于 Browser.msgbox 的代码,它不会停止代码运行或整个函数停止工作。我在哪里或如何添加退货;如果用户单击“否”。然后它应该关闭消息框并且什么都不做。

if(confirm.toLowerCase()=='yes'){sendColomboMessage(e.range.rowStart)};
    SpreadsheetApp.getActiveSpreadsheet().toast('Email Sent to Venue Colombo Team')

【问题讨论】:

    标签: google-apps-script google-sheets


    【解决方案1】:

    这应该做你所追求的(有很多重复的功能可以分解成另一个功能):

    var sheetNameToWatch = "Active Discs"; // Active spreadsheet that contains the data
    var columnNumberToWatch = 14; // Column N
    var valueToWatch1 = "In Progress"; // First value to watch for in column N
    var valueToWatch2 = "Completed"; // Second value to watch for in column N
    /*var valueToWatch3 = "Rejected"; // Third value to watch for in columns for labeled PM         Review and Date Discs Shipped*/
    var timestamp = new Date(); // Timestamp
    var activeSessionuser = Session.getEffectiveUser(); //Get the current user in the     spreadsheet
    var replyTo = 'venueclientservices@rrd.com';
    
    function sendEmailNotifications(e) {
    
      Logger.log(JSON.stringify(e));
    
      Logger.log('sendEmailNotifications()');
    
      try {
    
        var ss = e.source;
        var sheet = ss.getActiveSheet();
        var range = e.range;
        var ass = SpreadsheetApp.getActiveSpreadsheet();
        var confirm;
        var getName = sheet.getName();
        var columnStart = range.columnStart;
    
        Logger.log("getName: " + sheet.getName());
        Logger.log("columnStart: " + range.columnStart);
        Logger.log("e.value: " + e.value);
    
        if (getName == sheetNameToWatch && 
            columnStart == columnNumberToWatch) {
    
          if (e.value == valueToWatch1) {
    
            Logger.log("Value 1");
    
            confirm = Browser.msgBox('Email will be sent to the Venue Colombo Team. Do you want to sent this email?', 
                                     Browser.Buttons.YES_NO); 
    
            if (confirm.toLowerCase() == 'yes') {
    
              sendColomboMessage(e.range.rowStart) 
    
              ass.toast('Email Sent to Venue Colombo Team')
    
            } else {
    
              ass.toast('Edit In Progress but no email sent');
    
            }
    
          } else if (e.value == valueToWatch2) {
    
            Logger.log("Value 2");
    
            confirm = Browser.msgBox('Email will be sent to the VCS Team. Do you want to sent this email?', 
                                     Browser.Buttons.YES_NO);
    
            if (confirm.toLowerCase() == 'yes') { 
    
              sendVCSMessage(e.range.rowStart);
              ass.toast('Email Sent to VCS Team');
    
            } else {
    
              ass.toast('Edit Value 2 but no email sent'); 
    
            }
    
          } else {
    
            ass.toast('Edit, but no email sent.');
    
          }
    
        } // matching sheet and col
    
      } // try
    
      catch (err) {
    
        Logger.log('catch err = ' + err);
    
      }
    
      function sendColomboMessage(row) {
    
        Logger.log("sendColomboMessage, row: " + row);
      };
    
      function sendVCSMessage(row) {
    
        Logger.log("sendVCSMessage, row: " + row);
      };
    
    } // sendEmailNotifications()
    

    【讨论】:

    • 救命稻草!!感谢 Andrew Roberts,您解决了我的问题并超出了我的需要。真是太感谢你了!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-10
    • 1970-01-01
    • 1970-01-01
    • 2021-12-12
    • 1970-01-01
    相关资源
    最近更新 更多