我正在尝试编辑Google的预制应用程序脚本,该脚本可从电子表格发送电子邮件。

我添加了一个新变量currentp来抓取脚本发送的电子邮件中电子表格的URL。当我尝试运行此脚本时,出现以下错误:


  TypeError:在对象Sheet中找不到函数getUrl。 (第17行,文件“代码”)


function sendEmails2() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var startRow = 2;
  var numRows = 2;
  var dataRange = sheet.getRange(startRow, 1, numRows, 3)

  var data = dataRange.getValues();
  for (var i = 0; i < data.length; ++i) {
    var row = data[i];
    var emailAddress = row[0];
    var message = row[1];
    var currentp =  sheet.getUrl()  //current spreadsheet page
    var emailSent = row[2];
    if (emailSent != EMAIL_SENT) {
      var subject = "Sending emails from a Spreadsheet";
      MailApp.sendEmail(emailAddress, subject, message,currentp); // I would like the URL to be included in the email.
      sheet.getRange(startRow + i, 3).setValue(EMAIL_SENT);

      SpreadsheetApp.flush();
    }
  }
}

最佳答案

GetActiveSheet()返回Sheet对象,该对象是Spreadsheet文件中的“标签”。 getUrl()方法仅存在于Spreadsheet File对象上,因此您需要与Sheet分开获取Spreadsheet。

var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getActiveSheet();


然后获取URL:

var currentp = spreadsheet.getUrl();


看到:
https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet
https://developers.google.com/apps-script/reference/spreadsheet/sheet

关于javascript - Google Apps脚本-尝试使用getUrl。 TypeError:在对象表中找不到函数getUrl,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28903342/

10-12 02:23