基于 Google 电子表格中公式更改的电子邮件脚本代码
Email Script Code Based On Formula Change in Google spreadsheet
我使用了从某人那里复制的代码,并根据我需要的内容进行了编辑。但是,我几乎没有经验,我确信我已经破坏了任何功能。当 Google 表格中的公式从 F5:F12 更新到表格中某个范围的某个值时,我正在尝试向我发送电子邮件。
这是当前版本
function sendEmail(email_address, email_subject, email_message) {
var value = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet 1").getActiveRange().getValues().toString();
if (value = ("☁")) {
MailApp.sendEmail('user1...@myemail.com', 'My Subject','My Message : ');
}
else {
if (value = ("☀"))
MailApp.sendEmail('user2...@myemail.com', 'My Subject','My Message : ')
}
}
我已经尝试了来自两个 StackOverflow 的许多代码片段,但由于我的基本理解,我无法修改一个有效的代码片段。
-----------更新---------------
function onEdit(e){
try{
if(
e.range.getRowIndex() >= 5 &&
e.range.getRowIndex() <= 12 &&
e.range.getColumnIndex() == 6
){
if(e.range.getValue().charCodeAt(0) == 9729){
MailApp.sendEmail('xxx.xxx@gmail.com', 'Target Missed', 'View Spreadsheet');
}else if(e.range.getValue().charCodeAt(0) == 9728){
MailApp.sendEmail('xxxx@gmail.com', 'Target Met', 'View Spreadsheet');
}
}
}catch(error){
Logger.log(error);
}
}
如果您的代码应该在编辑 F5:F12 范围内的单元格并且仅包含 "☁" 或 " ☀ 时发送电子邮件,那么您的代码应如下所示:
function onEdit(e){
try{
if(
e.range.getRowIndex() >= 5 &&
e.range.getRowIndex() <= 12 &&
e.range.getColumnIndex() == 6
){
if(e.range.getValue().charCodeAt(0) == 9729){
MailApp.sendEmail('user1...@myemail.com', 'My Subject', 'My Message:');
}else if(e.range.getValue().charCodeAt(0) == 9728){
MailApp.sendEmail('user2...@myemail.com', 'My Subject', 'My Message:');
}
}
}catch(error){
Logger.log(error);
}
}
9729 和 9728 分别是 "☁" 和 "☀" 的十进制 Unicode 值。
您的代码有许多致命的语法错误。我认为您可能会从学习基本的JavaScript教程中受益。
您需要一个 onEdit 触发器来运行代码:
谷歌文档 - 触发器
文档引用:
例如,下面的示例代码显示了一个简单的 onEdit(e) 触发器 对于使用事件对象确定的 Google 表格脚本 编辑了哪个单元格。
以下是该文档中的一些代码,其中包含我添加的 Logger.log() 语句:
function onEdit(e){
// Set a comment on the edited cell to indicate when it was changed.
Logger.log('onEdit ran!');
Logger.log('value of e: ' + e);
var range = e.range;
Logger.log('This is the range: ' + range);
range.setNote('Last modified: ' + new Date());
}
因此,该代码将为您提供有关编辑了哪个单元格的信息。 然后,您需要将其与F5:F12范围内的单元格进行比较。
请注意"Logger.log()"语句。 要查看打印到日志的内容,请单击"查看"菜单和"日志"。
通过查看日志来验证函数是否正在运行。 另请检查"查看"菜单下的"执行脚本"以查看任何错误消息。
请使用任何日志消息和/或错误更新您的问题,并在下面发表评论。
相关文章:
- 如何在收到电子邮件时自动调用脚本
- 如何使用谷歌应用程序脚本从电子邮件中提取内联文件/图像
- 在谷歌应用程序脚本中,如何在满足条件的情况下只发送一次电子邮件
- Google Apps 脚本为 getLastRow 抛出电子邮件失败通知,我做错了什么
- 在 Google Apps 脚本中,无法以编程方式创建触发器以从 onEdit 触发器发送电子邮件
- 我删除电子邮件的脚本似乎正在运行,但它什么也没做
- Google Apps 脚本:尝试根据单元格的背景颜色发送电子邮件
- 谷歌应用程序将电子邮件表单脚本转换为PDF格式,但希望清除一些单元格
- Google Apps 脚本 - 根据单元格中的日期发送电子邮件
- 在电子邮件中显示<脚本>标记
- 从 html 读取输入电子邮件地址并在 JSP 脚本中使用
- 如何在 java 脚本中检查电子邮件 ID 是否存在
- 基于 Google 电子表格中公式更改的电子邮件脚本代码
- 需要在 PHP 脚本中使用用户的本地时间来发送电子邮件 - 我如何从 JS 中获取数据并在我的 php 中使用它
- 尝试制作一个脚本,如果值低于 60%,则扫描 Google 表格和电子邮件
- 从HTML / Java脚本发送电子邮件
- Google Apps 脚本 - 将横向参数添加到 PDF 电子邮件附件
- 在谷歌脚本中创建的电子邮件正文上应用下划线,粗体,斜体等
- 此联系表单电子邮件脚本是否安全
- PHP电子邮件脚本-每当我添加id?=文本开始后被截断2个字母