Javascript TypeError:无法读取属性';价值观';未定义的类型(第2行,文件“自动填写Google文档”)

Javascript TypeError:无法读取属性';价值观';未定义的类型(第2行,文件“自动填写Google文档”),javascript,google-apps-script,undefined,Javascript,Google Apps Script,Undefined,我正在尝试使用应用程序脚本将我的谷歌表单链接到谷歌文档模板。我一步一步地关注YouTube上的一个视频,但出于某种原因,我被这个错误标题卡住了 TypeError:无法读取未定义的属性“值”(第2行,文件“自动填充Google文档”) 这是我的剧本: function autoFillGoogleDocFromForm(e) { var reasonForInjury = e.values[0]; var name = e.values[1]; var location = e.va

我正在尝试使用应用程序脚本将我的谷歌表单链接到谷歌文档模板。我一步一步地关注YouTube上的一个视频,但出于某种原因,我被这个错误标题卡住了

TypeError:无法读取未定义的属性“值”(第2行,文件“自动填充Google文档”)

这是我的剧本:

function autoFillGoogleDocFromForm(e) {
  var reasonForInjury = e.values[0];
  var name = e.values[1];
  var location = e.values[2];
  var dateOfInjury = e.values[3];
  
  var templateFile = DriveApp.getFileById("1qOXVwyh45nUJAWYgY7p7JdbexxrsNN-myLe8DQrn-Cs");
  var templateResponseFolder = DriveApp.getFolderById("1zxIQ-_JzIhbcvE3iBEDL0VtvZpCUtTCT");
  
  var copy = templateFile.makeCopy(name + ", " + location, templateResponseFolder);
  
  var doc = DocumentApp.openById(copy.getId());
  
  var body = doc.getBody()
  
  body.replaceText("{{Reason for Injury}}", reasonForInjury);
  body.replaceText("{{EE Name}}", name);
  body.replaceText("{{Location}}", location);
  body.replaceText("{{DOI}}", dateOfInjury);
  
  doc.saveAndClose();
  
}

调试器说我的值未定义。如何更正此问题?

e未在代码段中定义。因此,您可能试图阅读一些不存在的内容。基本上,您需要弄清楚如何定义它。它来自哪里?

您试图访问的事件对象,并在编辑器中运行代码,而不是创建事件(提交表单)

e
是应用程序脚本作为参数传递给函数的事件对象。事件对象包含导致触发的上下文的相关信息。例如,用户提交的值。事件对象用于触发器。触发器允许应用程序脚本在发生特定事件(如提交表单)时自动运行函数

要解决此问题,请提交一个表单并在函数的参数中添加事件对象

您的代码应该如下所示:

function myFunction(e) {
  var reasonForInjury = e.values[0];
  var name = e.values[1];
  var location = e.values[2];
  var dateOfInjury = e.values[3];

  var templateFile = DriveApp.getFileById("id");
  var templateResponseFolder = DriveApp.getFolderById("id");

  var copy = templateFile.makeCopy(name + ", " + location, templateResponseFolder);

  var doc = DocumentApp.openById(copy.getId());

  var body = doc.getBody()

  body.replaceText("{{Reason for Injury}}", reasonForInjury);
  body.replaceText("{{EE Name}}", name);
  body.replaceText("{{Location}}", location);
  body.replaceText("{{DOI}}", dateOfInjury);
  doc.saveAndClose();
}
事件日志可在应用程序脚本的执行选项卡上查看

进一步阅读:

function myFunction(e) {
  var reasonForInjury = e.values[0];
  var name = e.values[1];
  var location = e.values[2];
  var dateOfInjury = e.values[3];

  var templateFile = DriveApp.getFileById("id");
  var templateResponseFolder = DriveApp.getFolderById("id");

  var copy = templateFile.makeCopy(name + ", " + location, templateResponseFolder);

  var doc = DocumentApp.openById(copy.getId());

  var body = doc.getBody()

  body.replaceText("{{Reason for Injury}}", reasonForInjury);
  body.replaceText("{{EE Name}}", name);
  body.replaceText("{{Location}}", location);
  body.replaceText("{{DOI}}", dateOfInjury);
  doc.saveAndClose();
}