我使用了从某人复制的代码,并根据我需要的内容进行了编辑。但是,我几乎没有经验,我确信我已经破坏了任何功能。我正在尝试向Google发送一封电子邮件,当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);
}
}
答案 0 :(得分:1)
如果您的代码应该在编辑F5:F12范围内的单元格时发送电子邮件,并且仅包含&#34;☁&#34;或者&#34;☀&#34;,那么你的代码应该是这样的:
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是&#34;☁&#34;的十进制Unicode值。和&#34;☀&#34;分别
您的代码存在许多致命的语法错误。我想你可能会受益于研究basic JavaScript tutorial。
答案 1 :(得分:0)
您需要 onEdit 触发器来运行代码:
Google Documentation - Triggers
例如,下面的示例代码显示了一个简单的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()&#39;声明。要查看打印到LOG的内容,请单击VIEW菜单和LOGS。
通过查看日志验证该功能是否正在运行。另请查看VIEW菜单下的EXECUTION TRANSCRIPT以查看任何错误消息。
请使用任何LOG消息和/或错误更新您的问题,并在下面发表评论。