Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.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 Statement_Google Sheets_Triggers_Getvalue - Fatal编程技术网

If statement 通过简单的编辑检查发送电子邮件给不工作的人

If statement 通过简单的编辑检查发送电子邮件给不工作的人,if-statement,google-sheets,triggers,getvalue,If Statement,Google Sheets,Triggers,Getvalue,当有人把一个Y放在一张纸上的一个单元格里时,它会给某人发电子邮件 无论我在支票上输入什么,我都能得到它:Y,F,T,bob——它总是通过电子邮件发送出去,不管值是多少。这就像如果只是设置我要求它检查的值并执行它。在多年的编程中从未见过这种情况 有人能看到我丢失的东西吗?我正在使用编辑触发器 function Checkchange() { var POs=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(11,

当有人把一个Y放在一张纸上的一个单元格里时,它会给某人发电子邮件

无论我在支票上输入什么,我都能得到它:Y,F,T,bob——它总是通过电子邮件发送出去,不管值是多少。这就像
如果
只是设置我要求它检查的值并执行它。在多年的编程中从未见过这种情况

有人能看到我丢失的东西吗?我正在使用编辑触发器

function Checkchange() {

  var POs=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(11, 2).getValue(); 
  var rec=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(31, 2).getValue();
  var backorder=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(37,5).getValue();
  var buyer=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(38,2).getValue();
  var QA=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(41,5).getValue();

  SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(58, 3).setValue(POs)
  SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(60, 3).setValue(rec)
  SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(61, 3).setValue(backorder)
  SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(62, 3).setValue(buyer)
  SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(63, 3).setValue(QA)


  sendEmailsRec(); 
}

function sendEmailsRec() {
  var EMAIL_SENT = 'EMAIL_SENT';
  var QAemailAddress = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(60, 1).getValue();
  var POs = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(11, 2).getValue();
  var message = "Ready for receiving for PO " + POs;
  var QAcheckbox = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(31,2).getValue()  
  var subject = "Ready for receiving for PO" + POs;
  var check = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(60, 4).getValue() + QAcheckbox

 // if(QAcheckbox ="Y",MailApp.sendEmail(QAemailAddress, subject, message));
  if(QAcheckbox ==="hdjkheehehie",
     SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(60, 3).setValue(EMAIL_SENT)+
     SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(65, 3).setValue(QAemailAddress + subject + message)+
       SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(60, 4).setValue(check));

    }

您的条件具有错误的逻辑运算符。一个
=
将始终返回
true
。改为使用
=
==

if (QAcheckbox == "Y"){
  MailApp.sendEmail(QAemailAddress, subject, message));// Always triggers regradless of value
  SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(63, 3).setValue(EMAIL_SENT));
}

您可以阅读有关运算符的更多信息。

您可能希望使用问题下方的链接至少标记所涉及的编程语言/环境。这将极大地提高你的机会,有人真的读到了这篇文章,并且对这个问题有了想法。好的,在google sheet中添加了Tag谢谢,但当我改为2或3个时,同样的事情发生了如果(QAcheckbox==“Y”,SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(60,3)。setValue(已发送电子邮件)+电子表格app.getActiveSpreadsheet().getActiveSheet().getRange(65,3).setValue(QAemailAddress+主题+消息)+电子表格app.getActiveSpreadsheet().getActiveSheet().getRange(60,4).setValue(检查));}即使我输入say HEHEHEHEH,它在QAcheckbox中返回HEHEHEHEH,但仍然会触发我刚才注意到您遗漏了括号
{
。我在回答中更新了代码。因为如果两个
具有相同的条件,您可以在同一个括号中加入它们。