TypeError:无法从undefined中读取属性"range"

Raj*_*ami 1 google-sheets google-apps-script

我写过这个谷歌应用程序脚本.目的:每次编辑"位置更新"脚本时,都应向"经纪人电子邮件"发送电子邮件. 这是电子表格的链接:

function onEdit(e) {
  var activateSheet = SpreadsheetApp.getActiveSpreadsheet();
  SpreadsheetApp.setActiveSheet(activateSheet.getSheetByName('Responses'));
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = e.range;
  var row = e.range.getRowIndex();//Gets the row the change was made to.  

  var timestamp = sheet.getRange(row, 1).getValues(); //Gets the email
  var load = sheet.getRange(row, 2).getValues(); //Gets the email
  var email = sheet.getRange(row, 3).getValues(); //Gets the email
  var location = sheet.getRange(row, 4).getValues(); //Gets the email
  var template = HtmlService.createTemplateFromFile("template");
 template.load = load;
 template.location =location;


  MailApp.sendEmail(email,"Hi","this is my email",{htmlBody: template.evaluate().getContent()});
   }
Run Code Online (Sandbox Code Playgroud)
<html>
<h1><b>This is a Check-In call for load number: <?= load ?></b></h1>
<p>
<?= location ?>
</p>
<p>
Please do not reply this email, we don't read these emails. If you have any questions/concers please <a href="google.com">Click Here</a>. We will get back to as soon as we can.
</p>
</html>
Run Code Online (Sandbox Code Playgroud)

Ala*_*lls 7

错误:

范围未定义

表示您定义为范围的变量之一未成功获取对范围的引用.

如果从脚本编辑器中运行代码,则会出现范围错误.在简单getRange()触发器的情况下,您只能通过实际编辑单元格来测试代码.该undefined事件变量将不会有一个分配给它,除非你真正编辑细胞东西.

我运行你的代码,如果我通过编辑单元格来触发它,则不会出现任何范围错误.

我收到一条错误消息,指出我无权发送电子邮件.这可能是因为触发器是一个"简单"触发器.您可能需要创建可安装的触发器才能拥有发送电子邮件的权限.