ユーザーがサインアップするスポーツを入力する Google フォームがあります。彼らは電子メール、住所、名前などを入力します。次に、Totalのスプレッドシートに列を追加します。これは、回答に基づいて、借りている合計を計算する配列式です。ユーザー送信時のフォームを含むスプレッドシートはうまく機能します。
ただし、スクリプト マネージャーには、onFormSubmit でトリガーされる関数があります (以下を参照)。ユーザーがフォームに入力して送信すると、「確認」メールが送信され、合計が未定義として表示されることを除いて、すべてのフィールドが本来の状態になります。これは arrayformula 列です。なぜ?それらのフィールドを送信することはできませんか? ユーザーにいくら借りているかを知らせるメールが本当に必要です。 ユーザーが送信したばかりの行の合計列を参照するにはどうすればよいですか?
function onFormSubmit(e) {
var timestamp = e.values[0];
var toAddress = e.values[1];
var LastName = e.values[2];
var Street = e.values[3];
var City = e.values[4];
var Zip = e.values[5];
var Phone = e.values[6];
var Student1 = e.values[7];
var GradeS1 = e.values[8];
var BdayS1 = e.values[9];
var GenderS1 = e.values[10];
var SportS1 = e.values[11];
var Student2 = e.values[12];
var GradeS2 = e.values[13];
var BdayS2 = e.values[14];
var GenderS2 = e.values[15];
var SportS2 = e.values[16];
var Student3 = e.values[17];
var GradeS3 = e.values[18];
var BdayS3 = e.values[19];
var GenderS3 = e.values[20];
var SportS3 = e.values[21];
var Student4 = e.values[22];
var GradeS4 = e.values[23];
var BdayS4 = e.values[24];
var GenderS4 = e.values[25];
var SportS4 = e.values[26];
var Total = e.values[30];
var subject = "Registration";
var htmlBody = "The Registration details you entered were as follows:" +
"<br/><br/> Date/Time Submitted: " + timestamp +
"<br/> Family: " + LastName +
"<br/> Address: " + Street + ", " + City + ", " + Zip +
"<br/> Phone: " + Phone +
"<br/> Student 1: " + Student1 + ", " + GradeS1 + ", " + BdayS1 + ", " + GenderS1 + ", " + SportS1 +
"<br/> Student 2: " + Student2 + ", " + GradeS2 + ", " + BdayS2 + ", " + GenderS2 + ", " + SportS2 +
"<br/> Student 3: " + Student3 + ", " + GradeS3 + ", " + BdayS3 + ", " + GenderS3 + ", " + SportS3 +
"<br/> Student 4: " + Student4 + ", " + GradeS4 + ", " + BdayS4 + ", " + GenderS4 + ", " + SportS4 +
"<br/><br/> TOTAL DUE: <b>$" + Total +
"</b><br/><br/>Please send your payment, <b>checks payable to Our Company </B> , to: <font color=\"red\"><b>Person Name</font></b>" +
"<br/><br/>Your registration will not be activated until payment is received. Thank you so much!" +
"<br/><br/>From Our Company";
var optAdvancedArgs = {name: "Our Company", htmlBody: htmlBody};
MailApp.sendEmail(toAddress, subject, "Message Body", optAdvancedArgs);
}
ありがとうございます。