インストール可能なトリガー と一緒にonFormSubmit関数が必要です。
Htmlサービスフォームを使用している場合は、 出力から宛先シートの名前を にすることができます。スプレッドシートの から作成したフォームでは、この操作を行うことはできません。私ができることは、 です。 シートが更新されたかどうかを確認するために、フォームタイムシートとタイムスタンプを フォームの最後の行と比較してください。 以降、複数の書式を同じ時刻に提出することは可能です(ただし、そうではありません)。
これを試してみてください:
//installable trigger also needed.
function onFormSubmit(e){
var ts=e.namedValues.Timestamp
findResponseForm(ts)
}
function findResponseForm(ts) {
var ss=SpreadsheetApp.getActiveSpreadsheet()
var s=ss.getSheetByName('Form Responses 1') //get 'Form Responses 1' sheet
var lr=s.getLastRow() //get last row number of 'Form Responses 1' sheet
var s1=ss.getSheetByName('Form Responses 2') //get 'Form Responses 2' sheet
var lr1=s1.getLastRow() //get last row number of 'Form Responses 2' sheet
var time1=s.getRange(lr, 1, 1,1).getValue() //get 'Form Responses 1'last Timestamp
var ftime1=Utilities.formatDate(time1, "GMT-6", "d/M/yyyy' 'HH:mm:ss") //convert 'Form Responses 1'last Timestamp format to form Timestamp format
var time2=s1.getRange(lr1, 1, 1,1).getValue() //get 'Form Responses 2'last Timestamp
var ftime2=Utilities.formatDate(time2, "GMT-6", "d/M/yyyy' 'HH:mm:ss") //convert 'Form Responses 1'last Timestamp format to form Timestamp format
if(ts==ftime1){ //if date/time match
Logger.log('Form Responses 1')
//call function to prosses 'Form Responses 1' data
}
else if(ts==ftime2){ //if date/time match
Logger.log('Form Responses 2')
//call function to prosses 'Form Responses 2' data
//Add more 'else if' if more forms are involved.
}
}
こんにちはエド、 は、私は自分のコードを更新したとonFormSubmitが実行されると、それが正しいシート用のスクリプトを実行することをテストすることができ、ご返信いただきありがとうございます。私が抱えている課題は、Googleフォームを使用してフォームを送信すると、フォームが通常の方法でスプレッドシートに入力されますが、スクリプトは実行されません。 スクリプトを実行するには他に何が必要ですか?何とか展開/公開する必要がありますか?私はそれを公表しようとしましたが、利用可能なオプションが私がしようとしているものと一致しません。 –