0

现在我正在尝试使用带有 Google Apps 脚本的电子表格上的列表来发送电子邮件。

我编写了如下代码(好吧,实际上只是在书中复制并粘贴示例程序),但是发生了一个错误,即“TypeError:无法调用 null 的方法“getLastRow”。”

  function sendMail() {
  var mySS = SpreadsheetApp.getActiveSpreadsheet();
  var mailSheet = mySS.getSheetByName("メール");  
  var addSheet = mySS.getSheetByName("住所録");
  var endRow = addSheet.getLastRow();
  var mySubject = mailSheet.getRange("C2").getValue();

  for (i = 2; i <= endRow; i++ ) {
    if (addSheet.getRange(i, 3).getValue()) {
      var myBody = addSheet.getRange(i, 1)
         .getValue() + "様¥n¥n";
      myBody = myBody + mailSheet.getRange("C3").getValue();
      var mailTo = addSheet.getRange(i, 2).getValue();
      GmailApp.sendEmail(mailTo, mySubject, myBody);
    }
  }
  Browser.msgBox("メール送信しました"); 
 }

抱歉有些包括日语,但我创建了两张名为“メール”和“住所录”的工作表,然后输入数据。

有人可以帮我解决这个问题吗?

4

2 回答 2

0

您的电子表格没有名为“住所录”的工作表。

如果找不到工作表,getSheetByName 方法不会抛出错误,它只是返回null

于 2013-05-17T10:02:05.393 回答
0

我认为问题在于您的工作表名称是日语。Google 服务器中脚本使用的编码会有所不同。因此,它不会返回任何工作表。将您的工作表重命名为英文,它将起作用

于 2013-05-17T10:05:11.680 回答