2016-11-11 16 views
0

スクリプトをいくつか見つけて、それを修正して、使用例では動作しますが、エラーが続くことがあります。基本的に私はGoogleフォームを持っています。ユーザーが送信すると、今入力した行が自分のメールに送信されます。私はエラーが発生し続ける: "未定義からプロパティ" namedValues "を読み取ることができません(行14、ファイル"コード ")"Googleシートの値を電子メールに送信するスクリプト

おかげで、ありがとう!

function sendFormByEmail(e) 
{  
    var email = "[email protected]"; 

    var s = SpreadsheetApp.getActiveSheet(); 
    var headers = s.getRange(1,1,1,s.getLastColumn()).getValues()[0];  
    var message = ""; 
    var subject = "New Hire: "; 

    // The variable e holds all the form values in an array. 
    // Loop through the array and append values to the body. 

    for(var i in headers) 
    message += headers[i] + ': '+ e.namedValues[headers[i]].toString() + "\n\n";  

    // Insert variables from the spreadsheet into the subject. 
    subject += e.namedValues[headers[2]].toString() + " - starts " + e.namedValues[headers[15]].toString(); 

    // Send the email 
    MailApp.sendEmail(email, subject, message); 

} 
+0

実際に私はこれを次のコードを使用して動作させていますが、これは値を持つヘッダーのみを含めるように変更するだけです。その空白の場合は、メッセージに含めないでください。今、その値なしすべてのヘッダさえものを含む: – Tai

+0

関数sendFormByEmail(E) {VAR電子メール=「[email protected] 『; = SpreadsheetApp.openById VAR S(『ランダム』)』 VARシート= (0); var header = sheet.getRange(1,1,1、sheet.getLastColumn())。getValues()[0]; var datarow = sheet.getRange(sheet.getLastRow() (ヘッダ内のvar i) { message + = "" + headers [i] + "1,1、sheet.getLastColumn() : "+ datarow [i] +" \ n \ n "; //Logger.log(message); } MailApp.sendEmail(email、 "Report"、message); } – Tai

答えて

0

ヘッダ[i]が空白であるかどうかをチェックすることができ、交換してください:

message += "" + headers[i] + " : " + datarow[i] + "\n\n"; 

で:また

if (datarow[i] != "") { 
message += "" + headers[i] + " : " + datarow[i] + "\n\n"; 
} 

あなたは、あなたのデータ行を自分の回答の編集をユーザーに許可している場合間違っています。

var datarow = sheet.getRange(e.range.getRow(),1,1,sheet.getLastColumn())‌.getValues()[0]; 
+0

こんにちは、私はこれを試しましたが、まだ値を持っていないいくつかのヘッダーで電子メールを取得しています。以下のメールのサンプルデータをご覧ください: – Tai

+0

詳細::はい カテゴリーを選択してください: URL:: – Tai

+0

ここでデータはありますか?スプレッドシートに共有リンクを投稿できますか? – utphx

関連する問題