如何编写谷歌脚本,在编辑特定列后发送电子邮件通知



我目前正在尝试编写一个谷歌脚本,每次在谷歌工作表上编辑特定列时,该脚本都会向我发送一封电子邮件。

该电子表格的标题是";销售;并且标签是";RO";。D到H列将不定期地用信息进行编辑,这就是为什么我想尝试设置一个电子邮件通知,在进行编辑时提醒我。

显示的错误消息

异常:参数(String(与SpreadsheetApp.getActiveSpreadsheet.的方法签名不匹配

当我尝试运行代码时出现

这是代码:

function sendMailEdit(e){
var ss = SpreadsheetApp.getActiveSpreadsheet("Sales").getSheetByName("RO");
if (be.range.columnStart != 3 || e.value != "Rollover") return;
const rData = e.source.getActiveSheet().getRange(e.range.rowStart,4,1,5).getValue();
let n = rData[0][4];
let d = new Date(rData[0][3]).toLocaleDateString("en-US");
let amo = rData[0][7];
let msg = "Account ID " + n + " (" + d + ") Request Date " + "Transfer Amount " + amo;
Logger.log(msg);
GmailApp.sendEmail("xxx@gmail.com", "New Sale", msg)
}

要修复错误消息,请删除

var ss = SpreadsheetApp.getActiveSpreadsheet("Sales").getSheetByName("RO");

因为不使用CCD_ 1。

同时更换

be.range.columnStart

通过(删除b(

e.range.columnStart

并替换

const rData = e.source.getActiveSheet().getRange(e.range.rowStart,4,1,5).getValue();

通过(添加s/使用getValues()而不是getValue()(

const rData = e.source.getActiveSheet().getRange(e.range.rowStart,4,1,5).getValues();

因为看起来这些行有打字错误。

如果您的脚本绑定到电子表格,则不必提及Sales

var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("RO")

编辑:由于脚本中没有使用ss,请尝试

function sendMailEdit(e) {
if (e.range.columnStart != 3 || e.value != "ROLLOVER" || e.source.getActiveSheet().getName() != 'RO') return;
const rData = e.source.getActiveSheet().getRange(e.range.rowStart, 4, 1, 5).getValues();
let n = rData[0][4];
let d = new Date(rData[0][3]).toLocaleDateString("en-US");
let amo = rData[0][7]; let msg = "Account ID " + n + " (" + d + ") Request Date " + "Transfer Amount " + amo; Logger.log(msg);
GmailApp.sendEmail("xxx@gmail.com", "New Sales", msg)
}

最新更新