当单元格值设为"Yes"时触发邮件发送的脚本问题求助
解决Google Sheets编辑D列下拉菜单为"Yes"时自动发邮件的问题
以下是针对你代码逻辑问题的排查和修正方案:
确保下拉选项与代码判断完全匹配
代码里判断的是e.range.getValue() == "Yes",要确认数据验证下拉菜单里的选项是完全一致的大小写格式——如果下拉选项是"yes"或"YES",条件就不会触发。如果想忽略大小写,可将判断改为:e.range.getValue().toLowerCase() == "yes"检查行范围条件是否符合需求
代码中row > 2意味着只有第3行及以下的单元格才会触发邮件。如果你的表头在第1行,需要第2行也触发,就把条件改成row >= 2,根据实际表格结构调整。添加日志定位触发细节
在函数里加入日志,能直观看到触发时的参数情况,方便排查哪一步条件不满足:function sendEmails(e){ // 打印触发信息到日志 Logger.log("触发行:" + e.range.getRow()); Logger.log("触发列:" + e.range.getColumn()); Logger.log("单元格值:" + e.range.getValue()); var row = e.range.getRow(); var col = e.range.getColumn(); var subject = "This is the subject of the email"; var body = "This is the body of the email"; var to = "email1@gmail.com"; var cc = "email2@gmail.com"; if (col == 4 && row > 2 && e.range.getValue() == "Yes"){ GmailApp.sendEmail({to:to, subject:subject, body:body, cc:cc}); Logger.log("邮件已发送"); } else { Logger.log("未满足触发条件"); } }修改后编辑D列单元格,再通过Google Apps脚本编辑器的「查看」→「日志」查看详细信息,就能明确是哪条条件未达标。
尝试调整sendEmail调用格式
虽然你之前成功过,但可以换一种更常用的参数写法测试:GmailApp.sendEmail(to, subject, body, {cc: cc});
内容的提问来源于stack exchange,提问作者brianna_datap
相关产品推荐
相关产品推荐

