If statement 通过简单的编辑检查发送电子邮件给不工作的人
当有人把一个Y放在一张纸上的一个单元格里时,它会给某人发电子邮件 无论我在支票上输入什么,我都能得到它:Y,F,T,bob——它总是通过电子邮件发送出去,不管值是多少。这就像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,
如果
只是设置我要求它检查的值并执行它。在多年的编程中从未见过这种情况
有人能看到我丢失的东西吗?我正在使用编辑触发器
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,但仍然会触发我刚才注意到您遗漏了括号
{
。我在回答中更新了代码。因为如果两个具有相同的条件,您可以在同一个括号中加入它们。