Google apps script Google脚本采用Google表单';s结果并填写另一张表格?
我不是一名程序员,但在提交时复制并粘贴了其他脚本,以通过电子邮件发送一些表单Google apps script Google脚本采用Google表单';s结果并填写另一张表格?,google-apps-script,google-sheets,google-forms,Google Apps Script,Google Sheets,Google Forms,我不是一名程序员,但在提交时复制并粘贴了其他脚本,以通过电子邮件发送一些表单 function sendFormByEmail(e) { var email = "xyxy@yyy.com"; var subject = "Practice Referral Form"; var msgHtml = e.values[5] + "," + "<br/> <br/> <br/>" + "Your instructor ha
function sendFormByEmail(e) {
var email = "xyxy@yyy.com";
var subject = "Practice Referral Form";
var msgHtml = e.values[5] + "," + "<br/> <br/> <br/>"
+ "Your instructor has referred you to practice the content/skills below. =" + "<br/>"
+ "<h1><b>Referral Information:</b></h1>"
+ "<b>Instructor: </b> " + e.values[1] + "<br/>"
+ "<b>Instructor Email: </b> " + e.values[2] + "<br/>"
+ "<b>Date: </b> " + e.values[0] + "<br/>"
+ "<b>Required Content/Skills: </b> " + e.values[3] + "<br/>"
+ "<b>Skills must be completed by: </b> " + e.values[4] + "<br/>"
+ "<br/> <br/> "
+ "<b>Student Name: </b>" + e.values[5] + "<br/>"
+ "<br/> "
var bccList = e.values[6];
var optAdvancedArgs = {bcc: bccList, noReply: true, htmlBody: msgHtml};
var msgPlain = msgHtml.replace(/\<br\/\>/gi, '\n').replace(/(<([^>]+)>)/ig, ""); // clear html tags and convert br to new lines for plain mail
MailApp.sendEmail(email, subject, msgPlain, optAdvancedArgs);
如果谷歌表单上的一个答案是真的,我想把提交的一些结果填写在我创建的另一个谷歌表单上。这可能吗?谢谢
下面是我拼凑的一个代码示例,用于在提交表单时通过电子邮件发送其中一个表单的结果
function sendFormByEmail(e) {
var email = "xyxy@yyy.com";
var subject = "Practice Referral Form";
var msgHtml = e.values[5] + "," + "<br/> <br/> <br/>"
+ "Your instructor has referred you to practice the content/skills below. =" + "<br/>"
+ "<h1><b>Referral Information:</b></h1>"
+ "<b>Instructor: </b> " + e.values[1] + "<br/>"
+ "<b>Instructor Email: </b> " + e.values[2] + "<br/>"
+ "<b>Date: </b> " + e.values[0] + "<br/>"
+ "<b>Required Content/Skills: </b> " + e.values[3] + "<br/>"
+ "<b>Skills must be completed by: </b> " + e.values[4] + "<br/>"
+ "<br/> <br/> "
+ "<b>Student Name: </b>" + e.values[5] + "<br/>"
+ "<br/> "
var bccList = e.values[6];
var optAdvancedArgs = {bcc: bccList, noReply: true, htmlBody: msgHtml};
var msgPlain = msgHtml.replace(/\<br\/\>/gi, '\n').replace(/(<([^>]+)>)/ig, ""); // clear html tags and convert br to new lines for plain mail
MailApp.sendEmail(email, subject, msgPlain, optAdvancedArgs);
函数sendFormByEmail(e){
var电子邮件=”xyxy@yyy.com";
var subject=“实践推荐表”;
var msgHtml=e.values[5]+“,“+”
+“您的讲师已建议您练习以下内容/技能。=”+“
”
+“转介信息:”
+“讲师:”+e.价值观[1]+“
”
+“讲师电子邮件:+e.values[2]+”
”
+日期:“+e.values[0]+”
”
+“所需内容/技能:”+e.values[3]+“
”
+“技能必须由以下人员完成:”+e.values[4]+“
”
+“
”
+学生姓名:“+e.values[5]+”
”
+“
”
var bccList=e.values[6];
var optadvancedags={bcc:bccList,noReply:true,htmlBody:msgHtml};
var msgPlain=msgHtml.replace(/\/gi,“\n”).replace(/(]+)>)/ig,”;//清除html标记并将br转换为普通邮件的新行
MailApp.sendmail(电子邮件、主题、msgPlain、optadvancedags);
}代码看起来非常超前。你需要的改变也很简单。试试这样的
function sendFormByEmail(e) {
var email = "xyxy@yyy.com";
var subject = "Practice Referral Form";
var msgHtml = e.values[5] + "," + "<br/> <br/> <br/>"
+ "Your instructor has referred you to practice the content/skills below. =" + "<br/>"
+ "<h1><b>Referral Information:</b></h1>"
+ "<b>Instructor: </b> " + e.values[1] + "<br/>"
+ "<b>Instructor Email: </b> " + e.values[2] + "<br/>"
+ "<b>Date: </b> " + e.values[0] + "<br/>"
+ "<b>Required Content/Skills: </b> " + e.values[3] + "<br/>"
+ "<b>Skills must be completed by: </b> " + e.values[4] + "<br/>"
+ "<br/> <br/> "
+ "<b>Student Name: </b>" + e.values[5] + "<br/>"
+ "<br/> "
var bccList = e.values[6];
var optAdvancedArgs = {bcc: bccList, noReply: true, htmlBody: msgHtml};
var msgPlain = msgHtml.replace(/\<br\/\>/gi, '\n').replace(/(<([^>]+)>)/ig, ""); // clear html tags and convert br to new lines for plain mail
MailApp.sendEmail(email, subject, msgPlain, optAdvancedArgs);
/* Write to the second spreadsheet */
var NEWSSID = 'ID_OF_THE_SECOND_FORM_SPREADSHEET';
// Assuming e.values[3] is what you're checking
if (e.values[3].toLowerCase() == 'true'){
var values = ['','','','',''] ; // Fill up with values you want to fill up in the new spreadsheet
var ss = SpreadsheetApp.openById(NEWSSID);
var sheet = ss.getSheetByName('SheetName'); //Replace name of the sheet here
var row = sheet.getLastRow() + 1;
sheet.getRange(row, 1, 1, values.length).setValues([values]);
}
}
函数sendFormByEmail(e){
var电子邮件=”xyxy@yyy.com";
var subject=“实践推荐表”;
var msgHtml=e.values[5]+“,“+”
+“您的讲师已建议您练习以下内容/技能。=”+“
”
+“转介信息:”
+“讲师:”+e.价值观[1]+“
”
+“讲师电子邮件:+e.values[2]+”
”
+日期:“+e.values[0]+”
”
+“所需内容/技能:”+e.values[3]+“
”
+“技能必须由以下人员完成:”+e.values[4]+“
”
+“
”
+学生姓名:“+e.values[5]+”
”
+“
”
var bccList=e.values[6];
var optadvancedags={bcc:bccList,noReply:true,htmlBody:msgHtml};
var msgPlain=msgHtml.replace(/\/gi,“\n”).replace(/(]+)>)/ig,”;//清除html标记并将br转换为普通邮件的新行
MailApp.sendmail(电子邮件、主题、msgPlain、optadvancedags);
/*写入第二个电子表格*/
var NEWSSID='ID_OF_THE_SECOND_FORM_SPREADSHEET';
//假设e.values[3]是您要检查的
if(e.values[3].toLowerCase()=='true'){
var values=['','','',''];//用您要在新电子表格中填充的值填充
var ss=SpreadsheetApp.openById(NEWSSID);
var sheet=ss.getSheetByName('SheetName');//在此处替换工作表的名称
var row=sheet.getLastRow()+1;
sheet.getRange(行,1,1,values.length).setValues([values]);
}
}
您可以发布使用其他脚本创建的代码吗?您不能填写第二张谷歌表单,但您可以向其他表单的电子表格中添加一行,这相当于填写表单。您可以创建一个指向预填表单的链接,该预填表单中包含您想要的任何数据,但不可以实际提交。正如@Srik所说,您也可以直接将数据写入电子表格,而不用使用表单。谢谢!这很有效。当一个新行被添加到电子表格中时,是否仍然需要触发第一个脚本?