我正在尝试制作一个简单的工具,用于存储票号以及一些移交给其他团队成员的详细信息。在此过程中,我使用表单在Google Spreasheet中提交移交和存储。但我也想通知团队成员,所以我写了一个脚本如下。
function formSubmitReply(e)
{
var timeStamp = e.values[0];
var sendTo = e.values[1];
var ticket = e.values[2];
var description = e.values[3];
MailApp.sendEmail(sendTo,
"New Handover",
+ ticket +" handovered to you at "+ timeStamp +"\n\nDescription:"+ description +
"\n\nKindly check it using the below link\n\nhttp://goo.gl/p16qdN",
{name:"Handover Mail"});
}
在上面的代码中,e.values [2]通过表单和表格中的票号,我使用了带有正则表达式验证的文本框[ci] [r,n] [q,c],这意味着前三个单词应该是C / I,R / N / Q / C.例如CRQ,IRC,INC..etc。一切都工作正常但突然有一天NaN开始进入通知邮件(下面的输出)。电子表格中的细节很好。
NaN handovered to you at 12/4/2014 12:48:23
Description:Device Check after 4 hours
Kindly check it using the below link
http://goo.gl/p16qdN
以上是我想要解决的主要问题。但是作为一个补充,我需要一些建议或指导如何在电子表格中设置一个单元格的值,当提交移交时,该单元格具有固定列和变量行。我指的是http://goo.gl/wkD0Y7我的工作。但是因为sheet.getRange(lastRow, getColIndexByName("Status")).setValue("New");
似乎无法引发一些引用错误。
答案 0 :(得分:0)
您的错误可能与前面的" +"登录电子邮件正文字符串,GAS编译器将字符串解释为数字。请尝试使用此代码:
function formSubmitReply(e){
var timeStamp = e.values[0];
var sendTo = e.values[1];
var ticket = e.values[2];
var description = e.values[3];
MailApp.sendEmail(
sendTo,
"New Handover",
ticket + " handovered to you at " +
timeStamp + "\n\nDescription:" +
description + "\n\nKindly check it using the below link\n\nhttp://goo.gl/p16qdN",
{name:"Handover Mail"}
);
}
至于你的另一个问题,没有内置的getColIndexByName()方法,所以你需要复制你引用的教程中的函数,或者像这样手动设置它: / p>
var statusCol = 1;
sheet.getRange(sheet.getLastRow() + 1, statusCol).setValue("New");