SpreadsheetApp.getActiveSheet() 返回 null

use*_*997 2 google-sheets google-apps-script

我正在尝试使用下面的简单 sendemail 脚本:

function sendEmails() {
  var sheet = SpreadsheetApp.getActiveSheet()
  var startColumn = 1;  // First column of data to process
  var startRow = 1;  // First row of data to process
  // Fetch the range of cells
  var dataRange = sheet.getRange(startRow, startColumn)
  // Fetch values for each row in the Range.
  var data = dataRange.getValues();
  for (i in data) {
    var Column = data[i];
    var subject = Column[0]        // 1st column
    var emailAddress = "somemail@somemail.com";  // 2nd column
    var message = Column[2];       // 3rd column
    MailApp.sendEmail(emailAddress, subject, message);
  }
}
Run Code Online (Sandbox Code Playgroud)

类型错误:无法调用 null 的方法“getRange”。(第 10 行,文件“代码”)

sheet 返回 null,我不明白为什么。我有一个电子表格并保存在我的一个选项卡上,所以我不明白为什么它会返回 null。任何想法或调试技巧来找出原因?

谢谢,梅森

D.G*_*urg 5

我有一个通过 API 调用此方法的项目。我怀疑因此,没有“活动表”,因此它返回空值。

我能够通过 ID 获取工作表来解决这个问题:

var data = SpreadsheetApp.openById("<SHEET-ID>").getActiveSheet();
Run Code Online (Sandbox Code Playgroud)