我正在尝试使用下面简单的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);
}
}
TypeError:无法调用方法" getRange"为null。 (第10行,文件"代码")
表单返回null,我不明白为什么。我有一个电子表格并保存在我的一个标签上,所以我不明白为什么它会返回null。任何想法或调试技巧,找出原因?
谢谢, 梅森
答案 0 :(得分:1)
我有一个通过API调用此方法的项目。我怀疑是因为那样,没有活跃的表格'因此它返回null。
我能够通过ID获取工作表来解决这个问题:
var data = SpreadsheetApp.openById("<SHEET-ID>").getActiveSheet();
答案 1 :(得分:0)
SpreadsheetApp.getActiveSheet()
似乎并不总是有用。您可以尝试使用SpreadsheetApp.openById
方法。
如果您想从多电子表格中获取第一张表格,那么您可以尝试
var sheet = SpreadsheetApp.openById("sheet_id").getSheets()[0];
有关详细信息,请参阅以下链接。
https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app#openbyidid