我想创建一个流程,当人们提交表单时,我只填写信息(并不是每个字段都需要填写)。找到了代码(http://www.labnol.org/internet/google-docs-email-form/20884/),根据作者进行了所有操作,但对我没有用。我不是编码专家,因此需要您的帮助。
这里是代码:
function Initialize() {
var triggers = ScriptApp.getScriptTriggers();
for(var i in triggers) {
ScriptApp.deleteTrigger(triggers[i]);
}
ScriptApp.newTrigger("SendGoogleForm")
.forSpreadsheet(SpreadsheetApp.getActiveSpreadsheet())
.onFormSubmit()
.create();
}
function SendGoogleForm(e)
{
try
{
// You may replace this with another email address
var email = "[email protected]";
// Optional but change the following variable
// to have a custom subject for Google Form email notifications
var subject = "New Driver Application Arrived";
var s = SpreadsheetApp.getActiveSheet();
var columns = s.getRange(1,1,1,s.getLastColumn()).getValues()[0];
var message = "";
// Only include form fields that are not blank
for ( var keys in columns ) {
var key = columns[keys];
if ( e.namedValues[key] && (e.namedValues[key] != "") ) {
message += key + ' :: '+ e.namedValues[key] + "\n\n";
}
}
// This is the MailApp service of Google Apps Script
// that sends the email. You can also use GmailApp for HTML Mail.
MailApp.sendEmail(email, subject, message);
} catch (e) {
Logger.log(e.toString());
}
}
这是运行初始化进行测试时得到的:
Cannot call overloaded constructor forSpreadsheet with parameters
(null) because there is more than one matching constructor signature:
interface SpreadsheetTriggerBuilder forSpreadsheet(Spreadsheet)
interface SpreadsheetTriggerBuilder forSpreadsheet(String) (line 12,
file "Code")
[将代码添加到正在收集响应的Google Spreadsheet的脚本编辑器中,而不是在表单编辑器中。[source]
说明:错误消息表明forSpreadsheet()
的参数为(null)
。您输入了SpreadsheetApp.getActiveSpreadsheet()
,因此评估为null
。该方法仅适用于电子表格绑定的脚本。
该插件在勇敢的浏览器上不起作用。如果您当前不使用它,请尝试在Google Chrome上运行。