Google 用于发送电子邮件和隐藏行的脚本代码
Google Script Code to send email and hide row
如果编辑的单元格的值为 "V" 或 "v" 并且用户确认有人投票(如用 "V" 或 "v" 表示)。我 运行 遇到以下问题:
邮件发不出去(注意:我定义了onEdit函数作为修改和编辑的触发器,所以我手动安装了。)
行没有自动隐藏。
警告框似乎触发了两次。
这是我的代码:
function onEdit(event){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var r=event.range
var c=r.getA1Notation();
var ui = SpreadsheetApp.getUi();
var response = ui.prompt('Did This Voter Vote?', r.offset(0,-1,1).getValue(), ui.ButtonSet.YES_NO);
var sb=response.getSelectedButton();
var v=r.getValue();
if ((v=="v" || v=="V" ) && sb == ui.Button.YES) {
var N=r.offset(0,-2,1).getValue();
var nme=r.offset(0,-1,1).getValue();
MailApp.sendEmail('address@email.com', "Voter #" + N,"David, this is to tell you that "+ nme+ " just voted.");
sheet.hideRow(r.row());
} else {
r.setValue("");
}
}
任何帮助都会很棒!谢谢!
有一个 fiddle 与您的原始代码,其中有些位,您真的不需要。有点混乱,
除了发送电子邮件外,我的一切正常,我认为那是因为你不能在 onEdit 事件上发送电子邮件。它没有正确的授权。
解决方法是将您的 "email" 数据推送到 sheet。
然后使用一个简单的脚本向您发送电子邮件,也许是在计时器上。
function onEdit(event){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var r=event.source.getActiveRange();
var c=r.getA1Notation();
var ui = SpreadsheetApp.getUi();
var response = ui.prompt('Did This Voter Vote?', r.offset(0,-1,1).getValue(), ui.ButtonSet.YES_NO);
Logger.log(response);
var sb=response.getSelectedButton();
var value=r.getValue();
if ((value=="v" || value=="V" ) && sb == ui.Button.YES) {
var N=r.offset(0,-2,1).getValue();
var nme=r.offset(0,-1,1).getValue();
sheet.hideRow(r);
// MailApp.sendEmail('address@email.com', "Voter #" + N,"David, this is to tell you that "+ nme+ " just voted.");
} else {
r.setValue("");
}
}
如果编辑的单元格的值为 "V" 或 "v" 并且用户确认有人投票(如用 "V" 或 "v" 表示)。我 运行 遇到以下问题:
邮件发不出去(注意:我定义了onEdit函数作为修改和编辑的触发器,所以我手动安装了。)
行没有自动隐藏。
警告框似乎触发了两次。
这是我的代码:
function onEdit(event){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var r=event.range
var c=r.getA1Notation();
var ui = SpreadsheetApp.getUi();
var response = ui.prompt('Did This Voter Vote?', r.offset(0,-1,1).getValue(), ui.ButtonSet.YES_NO);
var sb=response.getSelectedButton();
var v=r.getValue();
if ((v=="v" || v=="V" ) && sb == ui.Button.YES) {
var N=r.offset(0,-2,1).getValue();
var nme=r.offset(0,-1,1).getValue();
MailApp.sendEmail('address@email.com', "Voter #" + N,"David, this is to tell you that "+ nme+ " just voted.");
sheet.hideRow(r.row());
} else {
r.setValue("");
}
}
任何帮助都会很棒!谢谢!
有一个 fiddle 与您的原始代码,其中有些位,您真的不需要。有点混乱,
除了发送电子邮件外,我的一切正常,我认为那是因为你不能在 onEdit 事件上发送电子邮件。它没有正确的授权。
解决方法是将您的 "email" 数据推送到 sheet。 然后使用一个简单的脚本向您发送电子邮件,也许是在计时器上。
function onEdit(event){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var r=event.source.getActiveRange();
var c=r.getA1Notation();
var ui = SpreadsheetApp.getUi();
var response = ui.prompt('Did This Voter Vote?', r.offset(0,-1,1).getValue(), ui.ButtonSet.YES_NO);
Logger.log(response);
var sb=response.getSelectedButton();
var value=r.getValue();
if ((value=="v" || value=="V" ) && sb == ui.Button.YES) {
var N=r.offset(0,-2,1).getValue();
var nme=r.offset(0,-1,1).getValue();
sheet.hideRow(r);
// MailApp.sendEmail('address@email.com', "Voter #" + N,"David, this is to tell you that "+ nme+ " just voted.");
} else {
r.setValue("");
}
}