0

我正在嘗試製作一個簡單的工具,它可以存儲門票號碼和一些交給其他團隊成員的詳細信息。在這個過程中,我使用了一個表單來提交移交併存儲在Google Spreasheet中。但我也想通知團隊成員,所以我寫了一個腳本如下。爲什麼Google Apps腳本中的formSubmitReply上的e.values []具有NaN?

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 ..等等。一切正常,但突然有一天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

您的錯誤可能與電子郵件正文字符串中的前面的「+」符號有關,並且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()方法,所以你要麼需要在功能從你引用的教程複製或只是手動一樣設置這個:

var statusCol = 1; 
sheet.getRange(sheet.getLastRow() + 1, statusCol).setValue("New");