需要谷歌脚本的帮助。我有多行spreadsheet。
需要执行以下操作的脚本:
如果G列中的任何单元格已更改,则发送电子邮件通知 自定义地址包含来自此行的信息:来自的信息 单元格D和单元格G的新值。
UPD
我找到了有用的信息:
function emailNotification() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var cell = ss.getActiveCell().getA1Notation();
var cellvalue = ss.getActiveCell().getValue().toString();
var recipient = "me@gmail.com";
var subject = 'Update to '+sheet.getName();
var body = sheet.getName() + ' has been updated. Visit ' + ss.getUrl() + ' to view the changes on cell: «' + cell + '» New cell value: «' + cellvalue + '»';
MailApp.sendEmail(recipient, subject, body);
};
此脚本跟踪整个表中的更改。我想仅跟踪G列中的更改,并从D列获取值。
问题:
如果值有,则在D列中获取单元格的值 更改了G列中的单元格
最后脚本 - 回答我的问题
function sendNotification() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var cell = ss.getActiveCell().getA1Notation();
var row = sheet.getActiveRange().getRow();
var cellvalue = ss.getActiveCell().getValue().toString();
var recipients = "me@gmail.com";
var message = '';
if(cell.indexOf('G')!=-1){
message = sheet.getRange('D'+ sheet.getActiveCell().getRowIndex()).getValue()
}
var subject = 'Update to '+sheet.getName();
var body = sheet.getName() + ' has been updated. Visit ' + ss.getUrl() + ' to view the changes on row: «' + row + '». New comment: «' + cellvalue + '». For message: «' + message + '»';
MailApp.sendEmail(recipients, subject, body);
};
在onEdit上设置触发器,脚本可以正常工作
答案 0 :(得分:6)
您应该在发布问题之前搜索此论坛;我确实搜索了电子邮件+单元格并得到了一些结果:
例如,this post answer几乎完全符合您的要求。
编辑后编辑:
使用IF
条件。
这样的事情:
var cellG = ''
if(cell.indexOf('D')!=-1){ // = if you edit data in col D
cellG = sheet.getRange('G'+ sheet.getActiveCell().getRowIndex()).getValue()
// add more condition if necessary and/or send your mail (cellG contains the value in column G of the active row
}
Logger.log(cellG)
答案 1 :(得分:1)
跟踪单元格更改事件的正确方法是将事件对象“e”与onEdit触发器一起使用。事件对象包含已编辑的范围,因此您始终可以获取已更改的单元格的内容。
function sendNotification(e){
var range = e.range;
range.setNote('Last modified: ' + new Date());
}
注意:函数名称不应为onEdit,这是apps脚本中的特殊名称。 onEdit函数因 LIMITED authMode而无法发送电子邮件。
Here is an apps script,如果在特定范围内编辑了单元格,则允许发送电子邮件。它还允许发送整个行,整列或自定义范围以在通知电子邮件中发送。